Beispiel #1
0
        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));
        }
Beispiel #2
0
        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());
                }
            }
        }
Beispiel #3
0
        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"));
        }