public ActionResult Edit(EditCribViewModel model) { if(!ModelState.IsValid) { return View(model); } //find the crib to update RentCrib rentCrib = db.RentCribs.First(x => (x.Id == model.Id && x.User.Email == User.Identity.Name)); if (rentCrib == null) { //Handle as error throw new ArgumentNullException("Error" + " occured while processing your request. Please contact support."); } rentCrib.Title = model.Title; rentCrib.Description = model.Description; rentCrib.Location = model.Location; rentCrib.NumberOfRooms = model.NumberOfRooms; rentCrib.Available = model.AvailableDate; rentCrib.MonthlyPrice = model.MonthlyRent; #region set images edit if(model.MainImage != null) { rentCrib.images.First(x => x.Cover).Image = CribFileHelper.GetByteArray(model.MainImage); } var supportingImages = rentCrib.images.Where(x => x.Cover == false).ToList(); if(supportingImages.Count == 0) { if(model.Image1 != null) { rentCrib.images.Add(new CribImages{Image = CribFileHelper.GetByteArray(model.Image1)}); } if (model.Image2 != null) { rentCrib.images.Add(new CribImages{Image = CribFileHelper.GetByteArray(model.Image2)}); } } else if (supportingImages.Count == 1) { if(model.Image1 != null) { supportingImages.First().Image = CribFileHelper.GetByteArray(model.Image1); } if(model.Image2 != null) { rentCrib.images.Add(new CribImages { Image = CribFileHelper.GetByteArray(model.Image2) }); } } else if(supportingImages.Count == 2) { if(model.Image1 != null) { supportingImages.First().Image = CribFileHelper.GetByteArray(model.Image1); } if(model.Image2 != null) { supportingImages.Last().Image = CribFileHelper.GetByteArray(model.Image2); } } #endregion db.Entry(rentCrib).State = EntityState.Modified; int success = db.SaveChanges(); //successfully updated a post return RedirectToAction("View", new {id = model.Id}); }
public ActionResult Edit(int? id) { if (id == null) { throw new ArgumentNullException("Error" + " occured while processing your request. Please contact support."); } var model = db.RentCribs.Find(id); if (model == null) { throw new ArgumentNullException("Error" + " occured while processing your request. Please contact support."); } if (model.User.UserName != HttpContext.User.Identity.Name) { throw new UnauthorizedAccessException("Error : You are not authorized to perform this action."); } EditCribViewModel viewModel = new EditCribViewModel { Id = model.Id, Title = model.Title, Description = model.Description, MonthlyRent = model.MonthlyPrice, AvailableDate = model.Available, Location = model.Location, NumberOfRooms = model.NumberOfRooms, }; //get images ViewBag.CoverImage = Convert.ToBase64String(model.images.Where(x => x.Cover).First().Image); ViewBag.SupportingImages = (from image in model.images where image.Cover != true select Convert.ToBase64String(image.Image)).ToList(); return View(viewModel); }