public JsonResult Update(EpreuveTechniqueModel model)
        {
            try
            {
                var dbmodel = this.repository.Read(m => m.Id == model.Id).First();
                if (dbmodel != null)
                {
                    dbmodel.CategoriePratiquantId = model.CategorieId;
                    dbmodel.GenreCategorie        = (GenreEpreuve)model.GenreCategorieId;
                    dbmodel.GradeAutorise         = (Grade)model.GradeAutoriseId;
                    dbmodel.Statut        = (StatutEpreuve)model.StatutId;
                    dbmodel.TypeEpreuveId = model.TypeEpreuveId;

                    this.repository.Update(dbmodel);
                    return(Json(dbmodel.ToModel()));
                }
                else
                {
                    throw new ArgumentException("L'epreuve technique est absente de la base de données", "model");
                }
            }
            catch
            {
                throw;
            }
        }
        public JsonResult Create(EpreuveTechniqueModel model)
        {
            try
            {
                var categorie   = this.categories.Read(model.CategorieId).Nom;
                var typeEpreuve = this.types.Read(model.TypeEpreuveId).Nom;
                var genre       = GenreEpreuves.ResourceManager.GetString(((GenreEpreuve)model.GenreCategorieId).ToString());
                var grade       = Grades.ResourceManager.GetString(((Grade)model.GradeAutoriseId).ToString());
                var dbitem      = new EpreuveTechnique
                {
                    Nom = string.Format("{0} {1} {2} {3}", typeEpreuve, categorie, genre, grade),
                    CategoriePratiquantId = model.CategorieId,
                    GenreCategorie        = (GenreEpreuve)model.GenreCategorieId,
                    GradeAutorise         = (Grade)model.GradeAutoriseId,
                    Statut        = (StatutEpreuve)model.StatutId,
                    TypeEpreuveId = model.TypeEpreuveId
                };

                this.repository.Create(dbitem);
                return(Json(dbitem.ToModel()));
            }
            catch
            {
                throw;
            }
        }
        public static EpreuveTechniqueModel ToModel(this EpreuveTechnique dto)
        {
            EpreuveTechniqueModel result = new EpreuveTechniqueModel();

            result.Id               = dto.Id;
            result.Nom              = dto.Nom;
            result.CategorieId      = dto.CategoriePratiquantId;
            result.GenreCategorieId = (int)dto.GenreCategorie;
            result.GradeAutoriseId  = (int)dto.GradeAutorise;
            result.StatutId         = (int)dto.Statut;
            result.TypeEpreuveId    = dto.TypeEpreuveId;
            result.IsMerged         = dto.IsMerged;
            return(result);
        }
 public JsonResult Delete(EpreuveTechniqueModel 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'epreuve technique est absente de la base de données", "model");
         }
     }
     catch
     {
         throw;
     }
 }