Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }