コード例 #1
0
        public IActionResult Index()
        {
            IEnumerable <Product>     products     = GetApiProducts.GetProducts();
            IEnumerable <UserComment> comment      = GetApiUserComments.GetUserComments();
            IEnumerable <Category>    categories   = GetApiCategories.GetCategories();
            IEnumerable <Distributor> distributors = GetApiDistributors.GetDistributors();

            List <ProductModelViewDetail> productRatings = products.Where(p => p.IsActivated == true).Select(p => new ProductModelViewDetail()
            {
                ProductId          = p.ProductId,
                ProductName        = p.ProductName,
                ProductDescription = p.ProductDescription,
                ProductImage       = p.ProductImage,
                ProductPrice       = p.ProductPrice,
                ProductDiscount    = p.ProductDiscount,
                CategoryName       = categories.SingleOrDefault(k => k.CategoryId == p.CategoryId).CategoryName,
                DistributorName    = distributors.SingleOrDefault(k => k.DistributorId == p.DistributorId).DistributorName,
                Rating             = getRatingProduct(p.ProductId),
                No_Ratings         = comment.Where(k => k.ProductId == p.ProductId && k.UserCommentApproved == true).Count(),
                InitAt             = p.InitAt,
                SlugName           = p.SlugName
            }).OrderByDescending(p => p.InitAt).ToList();

            return(View(productRatings));
        }
コード例 #2
0
ファイル: ProductsController.cs プロジェクト: ttthien111/PET
        public IActionResult EditProduct(int productId)
        {
            ViewBag.Distributors = GetApiDistributors.GetDistributors().ToList();
            ViewBag.Categories   = GetApiCategories.GetCategories().ToList();
            Product product = GetApiProducts.GetProducts().SingleOrDefault(p => p.ProductId == productId);

            return(View(product));
        }
コード例 #3
0
ファイル: HomeController.cs プロジェクト: ttthien111/PET
        public IActionResult Index()
        {
            ViewBag.Category = GetApiCategories.GetCategories().ToList(); // api
            List <ProductModelView> newProducts = GetApiProducts.GetProducts().Select(p => new ProductModelView()
            {
                ProductId          = p.ProductId,
                ProductName        = p.ProductName,
                ProductDescription = p.ProductDescription,
                ProductImage       = p.ProductImage,
                ProductDiscount    = p.ProductDiscount,
                ProductPrice       = p.ProductPrice,
                SlugName           = p.SlugName,
                CategoryId         = p.CategoryId,
                DistributorId      = p.DistributorId,
                Rating             = 0,
                InitAt             = p.InitAt,
                IsActivated        = p.IsActivated,
                NumberOfPurchases  = p.NumberOfPurchases,
                CatName            = ""
            }).ToList();

            foreach (var p in newProducts)
            {
                p.Rating  = getRatingProduct(p.ProductId);
                p.CatName = GetApiCategories.GetCategories().SingleOrDefault(k => k.CategoryId == p.CategoryId).CategoryName;
            }

            ViewBag.NewProducts = newProducts.Where(p => p.isNew || p.ProductDiscount != 0).Take(5).ToList();

            List <ProductModelView> mostBoughts = GetApiProducts.GetProducts().OrderByDescending(p => p.NumberOfPurchases).Select(p => new ProductModelView()
            {
                ProductId          = p.ProductId,
                ProductName        = p.ProductName,
                ProductDescription = p.ProductDescription,
                ProductImage       = p.ProductImage,
                ProductDiscount    = p.ProductDiscount,
                ProductPrice       = p.ProductPrice,
                SlugName           = p.SlugName,
                CategoryId         = p.CategoryId,
                DistributorId      = p.DistributorId,
                Rating             = 0,
                InitAt             = p.InitAt,
                IsActivated        = p.IsActivated,
                NumberOfPurchases  = p.NumberOfPurchases,
                CatName            = ""
            }).Take(5).ToList();

            foreach (var p in mostBoughts)
            {
                p.Rating  = getRatingProduct(p.ProductId);
                p.CatName = GetApiCategories.GetCategories().SingleOrDefault(k => k.CategoryId == p.CategoryId).CategoryName;
            }

            ViewBag.MostBought = mostBoughts.Take(5).ToList();

            return(View());
        }
コード例 #4
0
        public IActionResult Index()
        {
            // get category from api

            IEnumerable <Category> categories = GetApiCategories.GetCategories();

            ViewBag.Category = categories;
            return(View());
        }
コード例 #5
0
        public IActionResult CategoryById(string slugCategory = null)
        {
            // get category
            Category category = GetApiCategories.getCategoryBySlugName(slugCategory);

            ViewBag.CategoryName = category.CategoryName;

            // create filter
            Filter filter = HttpContext.Session.GetObject <Filter>("filter") == null?GetFilter() : HttpContext.Session.GetObject <Filter>("filter");

            ViewBag.Filter = filter;

            // list product view to show
            List <ProductModelView> productsByCatId = getProductsByFilter(slugCategory, filter);

            return(View(productsByCatId));
        }
コード例 #6
0
ファイル: ProductsController.cs プロジェクト: ttthien111/PET
        public IActionResult Index()
        {
            List <ProductModelView> products = GetApiProducts.GetProducts().Select(p => new ProductModelView()
            {
                ProductId          = p.ProductId,
                ProductName        = p.ProductName,
                ProductDescription = p.ProductDescription,
                ProductImage       = p.ProductImage,
                ProductPrice       = p.ProductPrice,
                ProductDiscount    = p.ProductDiscount,
                CatName            = GetApiCategories.GetCategories().SingleOrDefault(k => k.CategoryId == p.CategoryId).CategoryName,
                IsActivated        = p.IsActivated,
                InitAt             = p.InitAt,
                DistributorName    = GetApiDistributors.GetDistributors().SingleOrDefault(k => k.DistributorId == p.DistributorId).DistributorName
            }).ToList();

            return(View(products));
        }
コード例 #7
0
        public IActionResult RatingDetail(string slugName)
        {
            IEnumerable <Product> products = GetApiProducts.GetProducts().Where(p => p.IsActivated == true);
            Product p = products.SingleOrDefault(p => p.SlugName == slugName);

            if (p == null)
            {
                return(RedirectToAction("Index", "NotFound"));
            }

            ProductModelViewDetail res = new ProductModelViewDetail()
            {
                ProductId          = p.ProductId,
                ProductName        = p.ProductName,
                ProductDescription = p.ProductDescription,
                ProductImage       = p.ProductImage,
                ProductPrice       = p.ProductPrice,
                ProductDiscount    = p.ProductDiscount,
                CategoryName       = GetApiCategories.GetCategories().SingleOrDefault(k => k.CategoryId == p.CategoryId).CategoryName,
                DistributorName    = GetApiDistributors.GetDistributors().SingleOrDefault(k => k.DistributorId == p.DistributorId).DistributorName,
                Rating             = getRatingProduct(p.ProductId),
                No_Ratings         = GetApiUserComments.GetUserComments().Where(k => k.ProductId == p.ProductId && k.UserCommentApproved == true).Count(),
                InitAt             = p.InitAt,
                Comments           = new List <UserComment>()
            };

            List <UserComment> comments = GetApiUserComments.GetUserComments().Where(k => k.ProductId == p.ProductId && k.UserCommentApproved == true).OrderByDescending(p => p.UserCommentPostedDate).ToList();

            foreach (var cmt in comments)
            {
                cmt.UserProfile = GetApiUserProfile.GetUserProfiles().SingleOrDefault(p => p.UserProfileId == cmt.UserProfileId);
            }

            res.Comments = comments;

            return(View(res));
        }
コード例 #8
0
        public int GetAmountProduct(string slugName, string size = null)
        {
            Product product = GetApiProducts.GetProducts().SingleOrDefault(p => p.SlugName == slugName);
            string  slugCat = GetApiCategories.GetCategories().SingleOrDefault(p => p.CategoryId == product.CategoryId).CategoryName;

            int amount = 0;

            switch (slugCat)
            {
            case Constants.FOOD:
                amount = GetApiFoodProducts.GetFoodProducts().SingleOrDefault(p => p.ProductId == product.ProductId).FoodAmount;
                break;

            case Constants.TOY:
                amount = GetApiToyProducts.GetToyProducts().SingleOrDefault(p => p.ProductId == product.ProductId).ToyAmount;
                break;

            case Constants.COSTUME:
                amount = GetApiCostumeProducts.GetCostumeProducts().SingleOrDefault(p => p.ProductId == product.ProductId && p.CostumeSize == size).CostumeAmountSize;
                break;
            }

            return(amount);
        }
コード例 #9
0
        private bool IsFood(int productId)
        {
            Category category = GetApiCategories.getCategoryBySlugName(Constants.FOOD);

            return(GetApiProducts.GetProducts().SingleOrDefault(p => p.ProductId == productId && p.CategoryId == category.CategoryId) != null);
        }
コード例 #10
0
ファイル: ProductsController.cs プロジェクト: ttthien111/PET
        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"));
        }
コード例 #11
0
ファイル: ProductsController.cs プロジェクト: ttthien111/PET
 public IActionResult Create()
 {
     ViewBag.Distributors = GetApiDistributors.GetDistributors().ToList();
     ViewBag.Categories   = GetApiCategories.GetCategories().ToList();
     return(View());
 }
コード例 #12
0
        public IActionResult AddToInventoryRecieveItems(int productId)
        {
            List <InventoryRecieveItem> inventoryRecieveItems = IRItems;
            Product product = GetApiProducts.GetProducts().SingleOrDefault(p => p.ProductId == productId);
            string  slugCat = GetApiCategories.GetCategories().SingleOrDefault(p => p.CategoryId == product.CategoryId).CategoryName;

            List <InventoryRecieveItem> addItems = new List <InventoryRecieveItem>();

            switch (slugCat)
            {
            case Constants.FOOD:
                addItems = GetApiFoodProducts.GetFoodProducts().Where(p => p.ProductId == product.ProductId)
                           .Select(p => new InventoryRecieveItem()
                {
                    ProductId    = product.ProductId,
                    SubProductId = p.FoodId,
                    ProductName  = product.ProductName,
                    ProductImg   = product.ProductImage,
                    Size         = "",
                    Amount       = 0,
                    Price        = product.ProductPrice
                }).ToList();
                break;

            case Constants.TOY:
                addItems = GetApiToyProducts.GetToyProducts().Where(p => p.ProductId == product.ProductId)
                           .Select(p => new InventoryRecieveItem()
                {
                    ProductId    = product.ProductId,
                    SubProductId = p.ToyId,
                    ProductName  = product.ProductName,
                    ProductImg   = product.ProductImage,
                    Size         = "",
                    Amount       = 1,
                    Price        = product.ProductPrice
                }).ToList();
                break;

            case Constants.COSTUME:
                addItems = GetApiCostumeProducts.GetCostumeProducts().Where(p => p.ProductId == product.ProductId)
                           .Select(p => new InventoryRecieveItem()
                {
                    ProductId    = product.ProductId,
                    SubProductId = p.CostumeId,
                    ProductName  = product.ProductName,
                    ProductImg   = product.ProductImage,
                    Size         = p.CostumeSize,
                    Amount       = 1,
                    Price        = product.ProductPrice
                }).ToList();
                break;
            }

            // distinct data
            foreach (var item in addItems)
            {
                if (inventoryRecieveItems.SingleOrDefault(p => p.ProductId == item.ProductId &&
                                                          p.SubProductId == item.SubProductId &&
                                                          p.Size == item.Size) == null)
                {
                    inventoryRecieveItems.Add(item);
                }
            }

            HttpContext.Session.SetObject("inventoryRecieveItems", inventoryRecieveItems);
            return(PartialView(inventoryRecieveItems));
        }
コード例 #13
0
 public Category CategoryByName(string slugCategory)
 {
     return(GetApiCategories.GetCategories().SingleOrDefault(p => p.CategoryName.ToLower() == slugCategory.ToLower()));
 }
コード例 #14
0
        // Begin Function for get data quickly

        public List <ProductModelView> getProductsByFilter(string categorySlugName, Filter filter)
        {
            Category category = GetApiCategories.getCategoryBySlugName(categorySlugName);

            double priceTo_ = filter.PriceTo;

            if (filter.PriceTo == 0 || filter.PriceTo < filter.PriceFrom)
            {
                priceTo_ = 999999999999;
            }

            //create list products to assign
            List <ProductModelView> products = new List <ProductModelView>();

            // get Products from api to query
            List <Product> productsApi = GetApiProducts.GetProducts().Where(p => p.IsActivated == true).ToList();

            products = productsApi
                       .Where(p =>
                              p.CategoryId == category.CategoryId &&
                              p.ProductPrice * (1 - p.ProductDiscount) >= filter.PriceFrom &&
                              p.ProductPrice * (1 - p.ProductDiscount) <= priceTo_
                              )
                       .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             = 0,
                SlugName           = p.SlugName,
                NumberOfPurchases  = p.NumberOfPurchases
            }).ToList();

            // update rating for each product
            foreach (var p in products)
            {
                p.Rating = getRatingProduct(p.ProductId);
            }

            string[] ratings            = filter.ratings == null ? new string[0] : filter.ratings.Split("-");
            List <ProductModelView> res = new List <ProductModelView>();

            // get by ratings
            if (ratings.Length > 1)
            {
                foreach (var p in products)
                {
                    bool tracking = false;
                    foreach (var rating in ratings)
                    {
                        if (rating != "" && ((int)p.Rating == Int32.Parse(rating) || ((int)p.Rating == 5 && (int)p.Rating - Int32.Parse(rating) == 1) || (int)p.Rating + 1 == Int32.Parse(rating)))
                        {
                            tracking = true;
                            break;
                        }
                    }

                    // if track check point at product has rating equal ratings list
                    if (tracking)
                    {
                        res.Add(p);
                    }
                }
            }
            else
            {
                res = products;
            }


            if (filter.sort)
            {
                res = res.OrderByDescending(p => p.ProductPrice).ToList();
            }
            else
            {
                res = res.OrderBy(p => p.ProductPrice).ToList();
            }
            if (filter.isDiscount)
            {
                res = res.Where(p => p.ProductDiscount > 0).ToList();
            }
            if (filter.isNew)
            {
                res = res.Where(p => p.isNew == true).ToList();
            }

            return(res);
        }