public async Task <ActionResult> Edit(int?id) { try { if (id.HasValue) { var listingRes = await _listingRepo.Get(id.Value); if (listingRes != null) { model = await GetDefaultViewModelEntry(); model.ExistingListingImages = ListingViewHelperUtilites.SetImagesToListItems (listingRes.ImagesContent.ToList()); model.FeaturesListToSelect .SetFeaturesTypesToListItems(listingRes.Features); model.HeatingListToSelect .SetHeatingTypesToListItems(listingRes.Heating); model.InputModel = listingRes; return(View(model)); } else { return(HttpNotFound()); } } else { return(HttpNotFound()); } } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); return(View(model)); } }
public async Task <ActionResult> Edit(ListingViewModel model) { try { if (ModelState.IsValid) { var listingFromDb = await _listingRepo.Get(model.InputModel.ID); model.InputModel.ImagesContent = listingFromDb.ImagesContent; var modelToUpdate = model.InputModel; if (!_imageHelper.IsPostedFilesListEmpty(model.ListingImageFiles)) { if (_imageHelper.HasImageListExceededSizeLimit (model.ListingImageFiles)) { ModelState.AddModelError (string.Empty, "File upload limit exceeded (more than 7 files)"); model = await GetDefaultViewModelEntry(); model.InputModel = modelToUpdate; model.ExistingListingImages = ListingViewHelperUtilites.SetImagesToListItems (modelToUpdate.ImagesContent.ToList()); return(View(model)); } if (_imageHelper.isValidFileUpload(model.ListingImageFiles)) { var imagesList = model.ListingImageFiles; _imageHelper.SetModelImages (modelToUpdate, imagesList); } else { ModelState.AddModelError (string.Empty, "One or more File uploads was not valid"); model = await GetDefaultViewModelEntry(); model.InputModel = modelToUpdate; return(View(model)); } } _imageHelper.ArchiveCheckedImages (model.ExistingListingImages, modelToUpdate.ImagesContent.ToList()); if (modelToUpdate.ImagesContent .Count(i => !i.IsArchived) > 7) { ModelState.AddModelError (string.Empty, "A listing can't have more than 7 Images"); model = await GetDefaultViewModelEntry(); model.InputModel = modelToUpdate; var imagesContentList = modelToUpdate.ImagesContent. Where(i => i.ID > 0).ToList(); model.ExistingListingImages = ListingViewHelperUtilites.SetImagesToListItems (imagesContentList); return(View(model)); } var currentLoggedUserId = User.Identity.GetUserId(); var currentLoggedUserRes = await UserIdentityManager .GetUserById(currentLoggedUserId); var tmpModel = ListingViewHelperUtilites .MapHeatingAndFeaturesToListingModel(model); modelToUpdate.Heating = tmpModel.Heating; modelToUpdate.Features = tmpModel.Features; modelToUpdate.DateUpdated = DateTime.Now; modelToUpdate.UserUpdatorId = currentLoggedUserRes.registeredUser.ID; await _listingRepo.Update(modelToUpdate); model.InputModel = await _listingRepo.Get(modelToUpdate.ID); } } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); var inputModel = model.InputModel; model = await GetDefaultViewModelEntry(); model.InputModel = inputModel; model.FeaturesListToSelect. SetFeaturesTypesToListItems(model.InputModel.Features); model.HeatingListToSelect. SetHeatingTypesToListItems(model.InputModel.Heating); return(View(model)); } return(View("Details", model)); }