public async Task <IActionResult> Update(int?id) { ViewBag.Category = _remindb.Categories; ViewBag.Marka = _remindb.Markas; if (id == null) { return(NotFound()); } Product product = await _remindb.Products.Include(a => a.CategoryMarka).Where(y => y.CategoryMarkaId == y.CategoryMarka.Id) .Include(e => e.CategoryMarka.Category).Where(e => e.CategoryMarka.CategoryId == e.CategoryMarka.Category.Id) .Include(d => d.CategoryMarka.Marka).Where(r => r.CategoryMarka.MarkaId == r.CategoryMarka.Marka.Id) .Include(i => i.Images) .Include(h => h.Likes).FirstOrDefaultAsync(p => p.Id == id); if (product == null) { return(NotFound()); } PoductUpdateViewModel pr = new PoductUpdateViewModel() { Name = product.Name, Title = product.Title, Description = product.Description, Price = product.Price, Count = product.Count, DiscountProduct = product.DiscountProduct, ProductDedline = product.ProductDedline, CreatedDate = product.CreatedDate, MostView = product.MostView, Active = null, Images = product.Images, }; return(View(pr)); }
public async Task <IActionResult> Update([Bind(include: "")] int id, PoductUpdateViewModel updateProductViewModel) { Product _dbproduct = await _remindb.Products.FirstOrDefaultAsync(p => p.Id == id); if (_dbproduct == null) { return(NotFound()); } try { if (ModelState["Name"].ValidationState == ModelValidationState.Invalid || ModelState["Title"].ValidationState == ModelValidationState.Invalid || ModelState["Description"].ValidationState == ModelValidationState.Invalid || ModelState["Count"].ValidationState == ModelValidationState.Invalid || ModelState["Price"].ValidationState == ModelValidationState.Invalid || //ModelState["DiscountProduct"].ValidationState == ModelValidationState.Invalid || //ModelState["ProductDedline"].ValidationState == ModelValidationState.Invalid || ModelState["MostView"].ValidationState == ModelValidationState.Invalid) { return(RedirectToAction(nameof(Index))); } if (updateProductViewModel.DiscountProduct == 0) { updateProductViewModel.ProductDedline = null; } ; #region _dbproduct.Name = updateProductViewModel.Name; _dbproduct.Title = updateProductViewModel.Title; _dbproduct.Description = updateProductViewModel.Description; _dbproduct.Price = updateProductViewModel.Price; _dbproduct.Count = updateProductViewModel.Count; _dbproduct.DiscountProduct = updateProductViewModel.DiscountProduct; _dbproduct.ProductDedline = updateProductViewModel.ProductDedline; _dbproduct.MostView = updateProductViewModel.MostView; _dbproduct.Active = null; #endregion if (!_remindb.CategoryMarkas.Any(d => d.CategoryId == updateProductViewModel.CategoryId && d.MarkaId == updateProductViewModel.MarkaId)) { CategoryMarka categoryMarka = new CategoryMarka() { CategoryId = updateProductViewModel.CategoryId, MarkaId = updateProductViewModel.MarkaId, }; await _remindb.CategoryMarkas.AddAsync(categoryMarka); await _remindb.SaveChangesAsync(); updateProductViewModel.CategoryMarkaId = categoryMarka.Id; _dbproduct.CategoryMarkaId = updateProductViewModel.CategoryMarkaId; } else { updateProductViewModel.CategoryMarkaId = _remindb.CategoryMarkas.FirstOrDefault(cm => cm.CategoryId == updateProductViewModel.CategoryId && cm.MarkaId == updateProductViewModel.MarkaId).Id; _dbproduct.CategoryMarkaId = updateProductViewModel.CategoryMarkaId; }; if (updateProductViewModel.ChangePhotoList != null) { foreach (var generateimage in updateProductViewModel.ChangePhotoList) { if (!generateimage.IsImage()) { ModelState.AddModelError("Photo", "You can chose only image format"); return(View()); } if (!generateimage.CheckSize(2)) { ModelState.AddModelError("Photo", "You can chose only small 2 MB"); return(View()); } string createdImage = await generateimage.CopyImage(_env.WebRootPath, "product"); Image image = new Image() { PathImage = createdImage, ProductId = _dbproduct.Id,// imageler id product saxlanaq;lll Active = null, }; await _remindb.Images.AddAsync(image); await _remindb.SaveChangesAsync(); } ; } await _remindb.SaveChangesAsync(); } catch (Exception ex) { await _remindb.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(RedirectToAction(nameof(Index))); }