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)); }
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)); }
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()); }
public IActionResult Index() { // get category from api IEnumerable <Category> categories = GetApiCategories.GetCategories(); ViewBag.Category = categories; return(View()); }
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)); }
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)); }
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)); }
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); }
private bool IsFood(int productId) { Category category = GetApiCategories.getCategoryBySlugName(Constants.FOOD); return(GetApiProducts.GetProducts().SingleOrDefault(p => p.ProductId == productId && p.CategoryId == category.CategoryId) != null); }
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")); }
public IActionResult Create() { ViewBag.Distributors = GetApiDistributors.GetDistributors().ToList(); ViewBag.Categories = GetApiCategories.GetCategories().ToList(); return(View()); }
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)); }
public Category CategoryByName(string slugCategory) { return(GetApiCategories.GetCategories().SingleOrDefault(p => p.CategoryName.ToLower() == slugCategory.ToLower())); }
// 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); }