using BowlingEF.Context;
using BowlingEF.Entities;
using BowlingRepository.Interface;
using Microsoft.EntityFrameworkCore;
namespace BowlingRepository;
///
/// Repository class to manage data of players
///
public class JoueurRepository:IJoueurRepository
{
private readonly BowlingContext _context;
///
/// Constructor
///
public JoueurRepository()
{
_context = new BowlingContext();
}
///
/// Methode pour ajouter un joueur dans la base de données
///
///
///
public async Task Add(JoueurEntity joueur)
{
var result = await _context.Joueurs.AddAsync(joueur);
await _context.SaveChangesAsync();
return result.Entity;
}
///
/// Methode pour supprimer un joueur de la base de données
///
///
///
public async Task Delete(long id)
{
JoueurEntity entity = _context.Joueurs.Find(id);
if (entity == null)
{
return false;
}
_context.Joueurs.Remove(entity);
return await _context.SaveChangesAsync() > 0;
}
///
/// Methode pour mettre à jour un joueur de la base de données
///
///
///
public async Task Update(JoueurEntity joueur)
{
return await _context.SaveChangesAsync() > 0;
}
///
/// Methode pour récupérer un joueur de la base de données par son id
///
///
///
public async Task GetJoueur(long id)
{
var data= await _context.Joueurs.FindAsync(id);
return data;
}
///
/// Methode pour récupérer tous les joueurs de la base de données
///
///
public async Task> GetAllJoueur()
{
return await _context.Joueurs.ToListAsync();
}
///
/// Methode pour récupérer un joueur de la base de données par son pseudo
///
///
///
public async Task GetJoueurByNom(string nom)
{
return await _context.Joueurs.FirstOrDefaultAsync(n => n.Pseudo == nom);
}
}