public JsonResult Update(DisponibiliteModel model)
        {
            try
            {
                var dbmodel = this.repository.Read(m => m.Id == model.Id).First();
                if (dbmodel != null)
                {
                    dbmodel.EncadrantId = model.EncadrantId;
                    dbmodel.Date        = model.Date;
                    dbmodel.Matin       = model.Matin;
                    dbmodel.Role        = new EnumConverter <Role>().ConvertToEnum(model.Role);

                    this.repository.Update(dbmodel);
                    return(Json(dbmodel.ToModel()));
                }
                else
                {
                    throw new ArgumentException("La disponibilité est absente de la base de données", "model");
                }
            }
            catch
            {
                throw;
            }
        }
        public static DisponibiliteModel ToModel(this Disponibilite dto)
        {
            DisponibiliteModel result = new DisponibiliteModel();

            result.Id          = dto.Id;
            result.EncadrantId = dto.EncadrantId;
            result.Date        = dto.Date;
            result.Matin       = dto.Matin;
            result.Role        = dto.Role.ToString();
            return(result);
        }
        public JsonResult Delete(DisponibiliteModel model)
        {
            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("La disponibilité est absente de la base de données", "model");
            }
        }
        public JsonResult Create(DisponibiliteModel model)
        {
            try
            {
                var dbitem = new Disponibilite
                {
                    Date        = model.Date,
                    EncadrantId = model.EncadrantId,
                    Matin       = model.Matin,
                    Role        = new EnumConverter <Role>().ConvertToEnum(model.Role)
                };

                this.repository.Create(dbitem);
                return(Json(dbitem.ToModel()));
            }
            catch
            {
                throw;
            }
        }
        public static Disponibilite ToDTO(this DisponibiliteModel model, Role role = Role.Administrateur)
        {
            Disponibilite result = new Disponibilite();

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

            result.EncadrantId = model.EncadrantId;
            result.Date        = model.Date;
            result.Matin       = model.Matin;
            if (model.Role != null)
            {
                result.Role = new EnumConverter <Role>().ConvertToEnum(model.Role);
            }
            else
            {
                result.Role = role;
            }
            return(result);
        }