示例#1
0
        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));
        }
示例#2
0
        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)));
        }