public IActionResult Update(EditProductViewModel model) { if (ModelState.IsValid) { Product productForUpdate = productRepository.GetSingleProduct(model.Id); productForUpdate.Description = model.Description; productForUpdate.Name = model.Name; productForUpdate.CategoryId = model.CategoryId;//Check if (model.MainImages != null) { productForUpdate.mainImages = IFormFileToString(model.MainImages); } if (model.Images != null && model.Images.Count != 0) { List <ImageProduct> imgeProductsList = new List <ImageProduct>(); if (model?.Images?.Count > 0) { foreach (var item in model.Images) { ImageProduct imageValue = new ImageProduct() { image = IFormFileToString(item) }; imgeProductsList.Add(imageValue); } } productForUpdate.imageProducts = imgeProductsList; } productRepository.Update(productForUpdate); return(RedirectToAction("Index")); } else { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); } return(View()); }
//https://stackoverflow.com/questions/30566848/when-should-i-use-async-controllers-in-asp-net-mvc //[HttpGet] public IActionResult showSingle(int ProductID) { LogDetails log = new LogDetails() { productID = ProductID, VisitTime = DateTime.Now, IP = Request.HttpContext.Connection.RemoteIpAddress.ToString() }; _LogDetails.Add(log); Product res = RepoPrc.GetSingleProduct(ProductID); if (res == null) { return(NotFound()); } var TAGS = ProductInfoREPO.GetMoreInfo(ProductID, "TAG"); var relerted = RepoPrc.GetReletionPruduct(ProductID); //UserViewModel userViewModel = _mapper.Map<UserViewModel>(user); //var relertedmap = _mapper.Map<productSingleImage>(relerted); var relertedmaps = _mapper.Map <List <Product>, List <productSingleImage> >(relerted.ToList()); //Product res =await restask; productMultiImage image = new productMultiImage() { AllImages = res.imageProducts.Select(x => x.image).ToList(), Category = res.Category, Description = res.Description, id = res.ProductID, Name = res.Name, Tags = TAGS, RelatedProduct = relertedmaps }; image.AllImages.Add(res.mainImages); return(View(image)); }