public ActionResult Edit(int id) { AdDbContext ctx = new AdDbContext(); var model = ctx.Ads.Find(id); ViewBag.CategoryId = new SelectList(ctx.Categories.ToList(), "Id", "Title", model.CategoryId); ViewBag.AdType = new SelectList(LookupHelper.GetAdTypesLookup(), "Value", "Text", model is SaleAd ? "sale" : "rent" ); AdsEditViewModel viewModel = new AdsEditViewModel() { Id = model.Id, Title = model.Title, CategoryId = model.CategoryId, Age = model.Age, Area = model.Area, AdType = model is SaleAd ? "sale" : "rent", UnitCount = model.UnitCount, ThumbnailPhotoPath = model.ThumbnailPhotoPath, }; if (model is SaleAd) { viewModel.PricePerUnit = ((SaleAd)model).PricePerUnit; } else { viewModel.Diposite = ((RentAd)model).Diposite; viewModel.Rent = ((RentAd)model).Rent; } return(View(viewModel)); }
public ActionResult Edit(AdsEditViewModel viewModel) { AdDbContext ctx = new AdDbContext(); var model = ctx.Ads.Find(viewModel.Id); var extension = ""; if (viewModel.ThumbnailFile != null) { extension = Path.GetExtension(viewModel.ThumbnailFile.FileName).ToLower(); if (viewModel.ThumbnailFile.ContentLength / 1024 >= 150) { ModelState.AddModelError("ThumbnailFile", "سایز فایل باید کمتر از ۱۵۰ کیلو بایت باشد"); ModelState.AddModelError("", "این خطای فرم نمونه است"); } if ( !(extension == ".jpg" || extension == ".jpeg" || extension == ".png" || extension == ".gif") ) { ModelState.AddModelError("ThumbnailFile", "فرمت تصویر مورد قبول نیست"); } } if (ModelState.IsValid) { model.Title = viewModel.Title; model.Age = viewModel.Age; model.Area = viewModel.Area; model.CategoryId = viewModel.CategoryId; if (viewModel.ThumbnailFile != null) { var fileName = $"{Guid.NewGuid().ToString()}{extension}"; var fullPath = Path.Combine(Server.MapPath("~/images/thumbnails"), fileName); viewModel.ThumbnailFile.SaveAs(fullPath); var thumbnailClientPath = $"/images/thumbnails/{fileName}"; model.ThumbnailPhotoPath = thumbnailClientPath; } if (viewModel.MediaFile1 != null) { AddMedia(viewModel.MediaFile1, model); } if (viewModel.MediaFile2 != null) { AddMedia(viewModel.MediaFile2, model); } if (viewModel.MediaFile3 != null) { AddMedia(viewModel.MediaFile3, model); } ctx.SaveChanges(); TempData["Message"] = "ویرایش با موفقیت انجام شد"; return(RedirectToAction("Index")); } ViewBag.CategoryId = new SelectList(ctx.Categories.ToList(), "Id", "Title", viewModel.CategoryId); ViewBag.AdType = new SelectList(LookupHelper.GetAdTypesLookup(), "Value", "Text", viewModel.AdType ); TempData["Message"] = "ویرایش با خطا مواجه شد"; TempData["MessageClass"] = "danger"; return(View(viewModel)); }