public IActionResult SearchProduct(string categorySlugName = null, string textSearch = null, long priceFrom = 0, long priceTo = 0, bool isNew = false, bool isDiscount = false, string ratings = null, bool sort = false) { // get category Category category = CategoryByName(categorySlugName); ViewBag.CategoryName = category.CategoryName; // get products by category List <Product> productsByCatId = ProductsByCatId(category.CategoryId); //get Filter Filter filter = GetFilter(priceFrom, priceTo, isNew, isDiscount, ratings, sort); List <ProductModelView> res = new List <ProductModelView>(); if (textSearch == null) { res = getProductsByFilter(categorySlugName, filter); } else { string textSearch_slug = SlugHelper.GetFriendlyTitle(textSearch.Trim()); List <string> searchs = textSearch_slug.Split("-").ToList(); foreach (var text in searchs) { List <ProductModelView> products = getProductsByFilter(categorySlugName, filter) .Where(p => p.ProductName.ToLower().Contains(text.ToLower())) .Select(p => new ProductModelView() { ProductId = p.ProductId, ProductName = p.ProductName, ProductDescription = p.ProductDescription, ProductImage = p.ProductImage, ProductDiscount = p.ProductDiscount, ProductPrice = p.ProductPrice, CategoryId = p.CategoryId, DistributorId = p.DistributorId, IsActivated = p.IsActivated, InitAt = p.InitAt, Rating = p.Rating, SlugName = p.SlugName }).ToList(); res.AddRange(products); } res = res.Distinct().ToList(); } return(PartialView(res)); }
public IActionResult EditProduct(int id, Product product, IFormFile productFile) { CredentialManage credential = JsonConvert.DeserializeObject <CredentialManage>(HttpContext.Session.GetString(Constants.VM_MANAGE) != null ? HttpContext.Session.GetString(Constants.VM_MANAGE) : ""); string token = credential.JwToken; Product current = GetApiProducts.GetProducts().SingleOrDefault(p => p.ProductId == id); Product update = new Product() { ProductId = id, ProductName = product.ProductName, ProductDescription = product.ProductDescription, ProductPrice = product.ProductPrice, ProductDiscount = product.ProductDiscount, NumberOfPurchases = current.NumberOfPurchases, CategoryId = product.CategoryId, DistributorId = product.DistributorId, IsActivated = true, SlugName = SlugHelper.GetFriendlyTitle(product.ProductName), InitAt = current.InitAt }; // product img string productImg = Encryptor.RandomString(12); string extension = productFile != null?Path.GetExtension(productFile.FileName) : ""; if (productFile != null) { if (SlugHelper.CheckExtension(extension)) { update.ProductImage = productImg + extension; } else { ViewBag.error = Constants.EXTENSION_IMG_NOT_SUPPORT; return(View()); } } else { update.ProductImage = current.ProductImage; } using (HttpClient client = Common.HelperClient.GetClient(token)) { client.BaseAddress = new Uri(Common.Constants.BASE_URI); var postTask = client.PutAsJsonAsync <Product>(Constants.PRODUCT + "/" + update.ProductId, update); postTask.Wait(); var result = postTask.Result; if (result.IsSuccessStatusCode) { // save img if (productFile != null) { var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images/products", productImg + extension); using (var file = new FileStream(path, FileMode.Create)) { productFile.CopyTo(file); } } return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "Chỉnh sửa thất bại"); return(View()); } } }
public IActionResult Create(ProductCreateModel create, IFormFile productFile) { if (create.ProductDiscount < 0 || create.ProductDiscount > 1) { return(Content(Constants.DISCOUNT_INVALID)); } Product product = new Product() { ProductName = create.ProductName, SlugName = SlugHelper.GetFriendlyTitle(create.ProductName), ProductPrice = create.ProductPrice, ProductDiscount = create.ProductDiscount, DistributorId = create.DistributorId, CategoryId = create.CategoryId, ProductDescription = create.ProductDescription, InitAt = DateTime.Now, NumberOfPurchases = 0, IsActivated = false }; // product img string productImg = Encryptor.RandomString(12); string extension = productFile != null?Path.GetExtension(productFile.FileName) : ""; if (productFile != null) { if (SlugHelper.CheckExtension(extension)) { var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images/products", productImg + extension); using (var file = new FileStream(path, FileMode.Create)) { productFile.CopyTo(file); } product.ProductImage = productImg + extension; } else { ModelState.AddModelError("", Constants.EXTENSION_IMG_NOT_SUPPORT); return(Content(Constants.EXTENSION_IMG_NOT_SUPPORT)); } } else { ModelState.AddModelError("", Constants.IMG_REQUIRED); return(Content(Constants.IMG_REQUIRED)); } Product createdProduct = CreatedProduct(product); if (createdProduct != null) { string catName = GetApiCategories.GetCategories().SingleOrDefault(p => p.CategoryId == createdProduct.CategoryId).CategoryName; switch (catName) { case Constants.FOOD: CreateAmountFood(createdProduct.ProductId); break; case Constants.TOY: CreateAmountToys(createdProduct.ProductId); break; case Constants.COSTUME: CreateAmountCostume(createdProduct.ProductId); break; } return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }