public IHttpActionResult Post([FromBody] CreateKMCModel model) { if (model.IsPublic) { ModelState.Remove("model.RoleIds"); } if (model.IsEditor) { ModelState.Remove("model.File"); ModelState.Remove("model.Type"); } else { ModelState.Remove("model.EditorCode"); } if (ModelState.IsValid) { var kmc = new KMCs { KMCCategoryId = model.KMCCategoryId, Title = model.Title, Description = model.Description, Thumbnail = model.ThumbnailUrl, IsEditor = model.IsEditor, KMCType = model.Type, FileId = model.FileId, FileType = model.FileType, EditorCode = model.EditorCode, IsPublic = model.IsPublic, IsShow = model.IsShow, CreatedBy = model.CreatedBy, CreatedDate = DateTime.Now }; if (!model.IsPublic && model.RoleIds != null) { foreach (var roleid in model.RoleIds) { var kmcrole = new KMCRole { RoleId = roleid, KMC = kmc, }; db.KMCRole.Add(kmcrole); } } db.KMCs.Add(kmc); db.SaveChanges(); return(Ok(kmc.Id)); } return(BadRequest(ModelState)); }
public IHttpActionResult Put(int id, [FromBody] EditKMCModel model) { if (model.IsPublic) { ModelState.Remove("model.RoleIds"); } if (model.IsEditor) { ModelState.Remove("model.File"); ModelState.Remove("model.Type"); } else { ModelState.Remove("model.EditorCode"); } var kmc = db.KMCs.Where(s => s.Id == id).FirstOrDefault(); if (kmc != null) { if (ModelState.IsValid) { kmc.Title = model.Title; kmc.Description = model.Description; kmc.Thumbnail = model.ThumbnailUrl; kmc.IsEditor = model.IsEditor; kmc.KMCType = model.Type; kmc.FileId = model.FileId; kmc.FileType = model.FileType; kmc.EditorCode = model.EditorCode; kmc.IsPublic = model.IsPublic; kmc.IsShow = model.IsShow; db.Entry(kmc).State = EntityState.Modified; db.Entry(kmc).Property(x => x.KMCCategoryId).IsModified = false; db.KMCRole.RemoveRange(db.KMCRole.Where(k => k.KMCId == id));//remove all if (!model.IsPublic && model.RoleIds != null) { foreach (var roleid in model.RoleIds) { var kmcrole = new KMCRole { RoleId = roleid, KMC = kmc, }; db.KMCRole.Add(kmcrole); } } db.SaveChanges(); return(Ok(true)); } else { return(BadRequest(ModelState)); } } else { return(NotFound()); } }