public ActionResult Edit(int id, UpdateOfferModel model, HttpPostedFileBase offerimage) { try { // Get previous details var existingoffer = Repository.Find(id); if (existingoffer == null) { throw new InvalidOperationException("Sorry the update cannot be done as no such offer exist"); } if (existingoffer is SeasonalOffer && model.PublishedBy == UpdateOfferModel.PublishedVia.Advertisement && offerimage != null && (offerimage.ContentLength < 1 || (offerimage.ContentType != "image/jpeg" && offerimage.ContentType != "image/png"))) { ModelState.AddModelError("updatestatus", "An Seasonal Offer Advertisement needs to have a valid Advertisement Image, Only JPEG and PNG images are supported"); ViewBag.PictureFileName = (existingoffer as SeasonalOffer).PictureFileName; } if (ModelState.IsValid) { // Attempt to Update the offer if (existingoffer is SeasonalOffer && offerimage != null && offerimage.ContentLength > 0) { var previd = (existingoffer as SeasonalOffer).PictureFileName; var imagecontroller = new ImagesController(); (existingoffer as SeasonalOffer).PictureFileName = imagecontroller.PutImage(offerimage, null).ToString("n"); // if both image ids are not same then delete the prev id. if (!String.Equals(previd, (existingoffer as SeasonalOffer).PictureFileName)) { imagecontroller.DeleteImage(previd); } } existingoffer.Description = model.Description; existingoffer.Title = model.Title; existingoffer.ValidTill = model.ValidTill; //And push the changed details if (Repository.Update(existingoffer)) { TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = String.Format("Details for {0} was successfully Updated", existingoffer.GetType().Name), Result = true, State = ActionResultNotification.MessageState.Information }; return(RedirectToAction("Index")); } } // If we got this far, something failed, redisplay form TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = ModelState.ContainsKey("updatestatus") ? ModelState["updatestatus"].Errors[0].ErrorMessage : "Cannot Update the details of the offer with given details, please try again", Result = false, State = ActionResultNotification.MessageState.Warning }; return(View(model)); } catch (Exception e) { TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = e.Message, Result = false, State = ActionResultNotification.MessageState.Error }; return(View(model)); } }
public ActionResult Edit(int id, UpdateOfferModel model, HttpPostedFileBase offerimage) { try { // Get previous details var existingoffer = Repository.Find(id); if (existingoffer == null) throw new InvalidOperationException("Sorry the update cannot be done as no such offer exist"); if (existingoffer is SeasonalOffer && model.PublishedBy == UpdateOfferModel.PublishedVia.Advertisement && offerimage != null && (offerimage.ContentLength < 1 || (offerimage.ContentType != "image/jpeg" && offerimage.ContentType != "image/png"))) { ModelState.AddModelError("updatestatus", "An Seasonal Offer Advertisement needs to have a valid Advertisement Image, Only JPEG and PNG images are supported"); ViewBag.PictureFileName = (existingoffer as SeasonalOffer).PictureFileName; } if (ModelState.IsValid) { // Attempt to Update the offer if (existingoffer is SeasonalOffer && offerimage != null && offerimage.ContentLength > 0) { var previd = (existingoffer as SeasonalOffer).PictureFileName; var imagecontroller = new ImagesController(); (existingoffer as SeasonalOffer).PictureFileName = imagecontroller.PutImage(offerimage, null).ToString("n"); // if both image ids are not same then delete the prev id. if (!String.Equals(previd, (existingoffer as SeasonalOffer).PictureFileName)) imagecontroller.DeleteImage(previd); } existingoffer.Description = model.Description; existingoffer.Title = model.Title; existingoffer.ValidTill = model.ValidTill; //And push the changed details if (Repository.Update(existingoffer)) { TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = String.Format("Details for {0} was successfully Updated", existingoffer.GetType().Name), Result = true, State = ActionResultNotification.MessageState.Information }; return RedirectToAction("Index"); } } // If we got this far, something failed, redisplay form TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = ModelState.ContainsKey("updatestatus") ? ModelState["updatestatus"].Errors[0].ErrorMessage : "Cannot Update the details of the offer with given details, please try again", Result = false, State = ActionResultNotification.MessageState.Warning }; return View(model); } catch (Exception e) { TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = e.Message, Result = false, State = ActionResultNotification.MessageState.Error }; return View(model); } }