public JsonResult Create(EncadrantModel model)
 {
     try
     {
         var dbitem = model.ToDTO();
         this.repository.Create(dbitem);
         return(Json(dbitem.ToModel()));
     }
     catch
     {
         throw;
     }
 }
        public JsonResult Update(EncadrantModel model)
        {
            if (this.disponibilitesRepository == null)
            {
                this.disponibilitesRepository = this.unitOfWork.Repository <Disponibilite>();
            }
            var dispo = this.disponibilitesRepository.Read();

            var dbmodel = this.repository.Read(m => m.Id == model.Id).First();

            if (dbmodel != null)
            {
                dbmodel.ClubId         = model.ClubId;
                dbmodel.Nom            = model.Nom;
                dbmodel.EstCompetiteur = model.EstCompetiteur;
                dbmodel.MailContact    = model.MailContact;
                dbmodel.Prenom         = model.Prenom;
                dbmodel.TailleTenue    = (TailleTenue)model.TailleTenueId;
                dbmodel.Sexe           = (Genre)model.GenreId;
                if (dbmodel.Disponibilites != null && dbmodel.Disponibilites.Count > 0)
                {
                    for (int i = dbmodel.Disponibilites.Count - 1; i >= 0; i--)
                    {
                        disponibilitesRepository.Delete(dbmodel.Disponibilites.ElementAt(i));
                    }
                }
                dbmodel.Disponibilites = new List <Disponibilite>();
                if (model.DispoAdministrateur != null)
                {
                    foreach (var disponibilite in model.DispoAdministrateur)
                    {
                        dbmodel.Disponibilites.Add(disponibilite.ToDTO(Role.Administrateur));
                    }
                }
                if (model.DispoArbitre != null)
                {
                    foreach (var disponibilite in model.DispoArbitre)
                    {
                        dbmodel.Disponibilites.Add(disponibilite.ToDTO(Role.Arbitre));
                    }
                }
                this.repository.Update(dbmodel);
                return(Json(dbmodel.ToModel()));
            }
            else
            {
                throw new ArgumentException("L'encadrant est absent de la base de données", "model");
            }
        }
        public static EncadrantModel ToModel(this Encadrant dto)
        {
            EncadrantModel result = new EncadrantModel();

            result.Id                  = dto.Id;
            result.ClubId              = dto.ClubId;
            result.Nom                 = dto.Nom;
            result.Prenom              = dto.Prenom;
            result.EstCompetiteur      = (bool)dto.EstCompetiteur;
            result.MailContact         = dto.MailContact;
            result.GenreId             = (int)dto.Sexe;
            result.TailleTenueId       = (int)dto.TailleTenue;
            result.DispoArbitre        = (dto.Disponibilites != null ? dto.Disponibilites.Where(d => d.Role == Role.Arbitre).Select(d => d.ToModel()) : new List <DisponibiliteModel>());
            result.DispoAdministrateur = (dto.Disponibilites != null ? dto.Disponibilites.Where(d => d.Role == Role.Administrateur).Select(d => d.ToModel()) : new List <DisponibiliteModel>());
            return(result);
        }
        public static Encadrant ToDTO(this EncadrantModel model)
        {
            Encadrant result = new Encadrant();

            if (model.Id != 0)
            {
                result.Id = model.Id;
            }

            result.ClubId         = model.ClubId;
            result.Nom            = model.Nom;
            result.Prenom         = model.Prenom;
            result.EstCompetiteur = model.EstCompetiteur;
            result.MailContact    = model.MailContact;
            result.Sexe           = (Genre)model.GenreId;
            result.TailleTenue    = (TailleTenue)model.TailleTenueId;
            result.Disponibilites = ((model.DispoAdministrateur != null) ? model.DispoAdministrateur.Select(d => d.ToDTO()).ToList() : new List <Disponibilite>()).Union((model.DispoArbitre != null) ? model.DispoArbitre.Select(d => d.ToDTO()).ToList() : new List <Disponibilite>()).ToList();
            return(result);
        }
 public JsonResult Delete(EncadrantModel model)
 {
     try
     {
         var dbmodel = this.repository.Read(m => m.Id == model.Id).First();
         if (dbmodel != null)
         {
             this.repository.Delete(dbmodel);
             return(Json(model));
         }
         else
         {
             throw new ArgumentException("L'encadrant est absent de la base de données", "model");
         }
     }
     catch
     {
         throw;
     }
 }