public ActionResult EditClip(EditClipModel clipToEdit, HttpPostedFileBase image) { //get commondata clipToEdit.clip.Id = Convert.ToInt32(ModelState["clip.Id"].Value.AttemptedValue); clipToEdit.clip.Title = ModelState["clip.Title"].Value.AttemptedValue; clipToEdit.clip.Description = ModelState["clip.Description"].Value.AttemptedValue; clipToEdit.clip.Url = ModelState["clip.Url"].Value.AttemptedValue; //get categories clipToEdit.clip.Categories.Clear(); string[] selectedcats = ModelState["AllCategories"].Value.AttemptedValue.Split(new char[] { ',' }); List<Category> AllCategories = repository.Categories.Distinct().ToList(); for (int i=0; i<AllCategories.Count(); i++) { if (selectedcats[i]=="true") clipToEdit.clip.Categories.Add(AllCategories[i]); } if (image != null) { clipToEdit.clip.ImageMimeType = image.ContentType; clipToEdit.clip.ImageData = new byte[image.ContentLength]; image.InputStream.Read(clipToEdit.clip.ImageData, 0, image.ContentLength); } repository.SaveClip(clipToEdit.clip); TempData["message"] = string.Format("{0} has been saved", clipToEdit.clip.Title); return RedirectToAction("ClipEditor"); }
public ViewResult EditClip(int Id) { EditClipModel clipToEdit = new EditClipModel(); //get clip from db to edit clipToEdit.clip = repository.Clips.FirstOrDefault(clipitem => clipitem.Id == Id); ; //get all categories to choose foreach (var cat in repository.Categories.Distinct().ToList()) { clipToEdit.AllCategories.Add( new SelectListItem { Text = cat.Title, Selected = false, Value = cat.Id.ToString() }); } //mark each category as checked if clip is belong to the category clipToEdit.AllCategories.ToList().ForEach( item => item.Selected = clipToEdit.clip.Categories.ToList().Exists(clipcat => clipcat.Id.ToString() == item.Value) ); return View(clipToEdit); }