public List <Product> ProductsByCatId(int catId) { // fix: dùng search theo tag List <Product> products = GetApiProducts.GetProducts().Where(p => p.CategoryId == catId && p.IsActivated == true).ToList(); return(products); }
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 List <BillModelView> GetBills() { //get credential CredentialModel credential = HttpContext.Session.GetObject <CredentialModel>(Constants.VM); // get profile UserProfile profile = GetApiUserProfile.GetUserProfiles().SingleOrDefault(p => p.UserProfileEmail == credential.AccountUserName); // get all Bill with profileID from server List <BillModelView> bills = GetApiMyBills.GetBills(credential).Select(p => new BillModelView() { BillId = p.BillId, BillCode = p.GenerateCodeCheck, DateOfPurchase = p.DateOfPurchase, DateDelivery = Convert.ToDateTime(p.DateOfDelivered), TotalPrice = p.TotalPrice, PaymentMethodId = p.PaymentMethodTypeId, IsDelivery = p.IsDelivery, IsCancel = p.IsCancel, }).ToList(); // get payment method foreach (var bill in bills) { bill.PaymentMethodName = GetApiPaymentMethodTypes.GetPaymentMethodTypes().SingleOrDefault(p => p.PaymentMethodTypeId == bill.PaymentMethodId).PaymentMethodTypeName; } // get bill detail foreach (var item in bills) { List <BillDetailModel> details = GetApiBillDetails.GetBillDetails().Where(p => p.BillId == item.BillId) .Select(p => new BillDetailModel() { ProductId = p.ProductId, ProductName = GetApiProducts.GetProducts().SingleOrDefault(k => k.ProductId == p.ProductId).ProductName, Amount = p.ProductAmount, Price = p.ProductPriceCurrent, NoteSize = p.NoteSize, Image = GetApiProducts.GetProducts().SingleOrDefault(k => k.ProductId == p.ProductId).ProductImage, }).ToList(); item.BillDetail = details; // get delivery of bill DeliveryProduct delivery = GetApiDeliveryProducts.GetDeliveryProducts().SingleOrDefault(p => p.DeliveryProductBillId == item.BillId); // get state of bill item.DeliveryProductStateId = delivery.DeliveryProductStateId; item.DeliveryStateName = GetApiDeliveryStates.GetDeliveryProductStates().SingleOrDefault(p => p.DeliveryProductStateId == delivery.DeliveryProductStateId).DeliveryProductStateName; } return(bills); }
public IActionResult BillDetail(int billId) { CredentialManage credential = JsonConvert.DeserializeObject <CredentialManage>(HttpContext.Session.GetString(Constants.VM_MANAGE)); Bill p = GetApiBills.GetBills(credential).SingleOrDefault(p => p.BillId == billId); BillModelView bill = new BillModelView() { BillId = p.BillId, BillCode = p.GenerateCodeCheck, DateOfPurchase = p.DateOfPurchase, DateDelivery = Convert.ToDateTime(p.DateOfDelivered), TotalPrice = p.TotalPrice, PaymentMethodId = p.PaymentMethodTypeId, IsDelivery = p.IsDelivery, IsCancel = p.IsCancel, IsApprove = p.IsApprove, IsCompleted = p.IsCompleted, PaymentMethodName = GetApiPaymentMethodTypes.GetPaymentMethodTypes().SingleOrDefault(k => k.PaymentMethodTypeId == p.PaymentMethodTypeId).PaymentMethodTypeName, }; List <BillDetailModel> details = GetApiBillDetails.GetBillDetails().Where(p => p.BillId == bill.BillId) .Select(p => new BillDetailModel() { ProductId = p.ProductId, ProductName = GetApiProducts.GetProducts().SingleOrDefault(k => k.ProductId == p.ProductId).ProductName, Amount = p.ProductAmount, Price = p.ProductPriceCurrent, NoteSize = p.NoteSize, Image = GetApiProducts.GetProducts().SingleOrDefault(k => k.ProductId == p.ProductId).ProductImage, }).ToList(); bill.BillDetail = details; // get delivery DeliveryProduct delivery = GetApiDeliveryProducts.GetDeliveryProducts().SingleOrDefault(p => p.DeliveryProductBillId == bill.BillId); bill.delivery = delivery; // get state of bill bill.DeliveryProductStateId = delivery.DeliveryProductStateId; bill.DeliveryStateName = GetApiDeliveryStates.GetDeliveryProductStates().SingleOrDefault(p => p.DeliveryProductStateId == delivery.DeliveryProductStateId).DeliveryProductStateName; return(Json(bill)); }
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)); }
private List <BillDetail> CreateBillDetail(Bill createdBill) { List <BillDetail> details = new List <BillDetail>(); List <BillDetail> response = new List <BillDetail>(); foreach (var item in Carts) { details.Add(new BillDetail() { BillId = createdBill.BillId, ProductAmount = item.Amount, ProductPriceCurrent = item.Price, ProductTotalPrice = item.Price * item.Amount, ProductId = GetApiProducts.GetProducts().SingleOrDefault(p => p.SlugName == item.CartItemSlugName).ProductId, NoteSize = item.Size != "" ? item.Size : "" }); } CredentialModel credential = JsonConvert.DeserializeObject <CredentialModel>(HttpContext.Session.GetString(Constants.VM)); string token = credential.JwToken; // post Delivery using (HttpClient client = Common.HelperClient.GetClient(token)) { client.BaseAddress = new Uri(Common.Constants.BASE_URI); foreach (var detail in details) { var postTask = client.PostAsJsonAsync <BillDetail>(Constants.BILLDETAIL, detail); postTask.Wait(); var result = postTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <BillDetail>(); readTask.Wait(); response.Add(readTask.Result); } } return(response); } }
public IActionResult Filter(string textSearch) { List <Product> filters = new List <Product>(); if (textSearch == "" || textSearch == null) { filters = new List <Product>(); } else { List <string> searchTexts = textSearch.Split(" ").ToList(); foreach (string search in searchTexts) { filters.AddRange(GetApiProducts.GetProducts() .Where(p => p.ProductName.ToLower().Contains(search.ToLower()) || p.ProductId.ToString() == search).ToList()); } } return(PartialView(filters)); }
public IActionResult ChangeActivated(int productId) { 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 == productId); // update status current.IsActivated = !current.IsActivated; using (HttpClient client = Common.HelperClient.GetClient(token)) { client.BaseAddress = new Uri(Common.Constants.BASE_URI); var postTask = client.PutAsJsonAsync <Product>(Constants.PRODUCT + "/" + current.ProductId, current); postTask.Wait(); var result = postTask.Result; } return(RedirectToAction("Index")); }
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); }
// 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); }
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 Product ProductBySlugName(string slugProductName) { return(GetApiProducts.GetProducts().SingleOrDefault(p => p.SlugName == slugProductName && p.IsActivated == true)); }
public IActionResult InventoryReceivingNoteDetail(int id) { CredentialManage credential = JsonConvert.DeserializeObject <CredentialManage>(HttpContext.Session.GetString(Constants.VM_MANAGE)); List <InventoryRecieveItem> details = new List <InventoryRecieveItem>(); // get foods List <InventoryRecieveItem> detailForFoods = GetApiInventoryReceivingNoteDetailForFoods .GetInventoryReceivingNoteDetailForFoods(credential.JwToken) .Where(p => p.InventoryReceivingId == id) .Select(p => new InventoryRecieveItem() { ProductId = GetApiFoodProducts.GetFoodProducts() .SingleOrDefault(k => k.FoodId == p.FoodProductId).ProductId, ProductName = GetApiProducts.GetProducts().SingleOrDefault(h => h.ProductId == (GetApiFoodProducts.GetFoodProducts() .SingleOrDefault(k => k.FoodId == p.FoodProductId).ProductId)).ProductName, SubProductId = p.FoodProductId, ProductImg = GetApiProducts.GetProducts().SingleOrDefault(h => h.ProductId == (GetApiFoodProducts.GetFoodProducts() .SingleOrDefault(k => k.FoodId == p.FoodProductId).ProductId)).ProductImage, Amount = p.FoodProductAmount, Size = "", Price = p.FoodProductPrice }).ToList(); List <InventoryRecieveItem> detailForToys = GetApiInventoryReceiveNoteDetailForToys .GetInventoryReceivingNoteDetailForToys(credential.JwToken) .Where(p => p.InventoryReceivingId == id) .Select(p => new InventoryRecieveItem() { ProductId = GetApiToyProducts.GetToyProducts() .SingleOrDefault(k => k.ToyId == p.ToyProductId).ProductId, ProductName = GetApiProducts.GetProducts().SingleOrDefault(h => h.ProductId == (GetApiToyProducts.GetToyProducts() .SingleOrDefault(k => k.ToyId == p.ToyProductId).ProductId)).ProductName, SubProductId = p.ToyProductId, ProductImg = GetApiProducts.GetProducts().SingleOrDefault(h => h.ProductId == (GetApiToyProducts.GetToyProducts() .SingleOrDefault(k => k.ToyId == p.ToyProductId).ProductId)).ProductImage, Amount = p.ToyProductAmount, Size = "", Price = p.ToyProductPrice }).ToList(); List <InventoryRecieveItem> detailForCostumes = GetApiInventoryReceiveNoteDetailForCostumes .GetInventoryReceivingNoteDetailForCostumes(credential.JwToken) .Where(p => p.InventoryReceivingId == id) .Select(p => new InventoryRecieveItem() { ProductId = GetApiCostumeProducts.GetCostumeProducts() .SingleOrDefault(k => k.CostumeId == p.CostumeProductId && k.CostumeSize == p.CostumeProductSize).ProductId, ProductName = GetApiProducts.GetProducts().SingleOrDefault(h => h.ProductId == (GetApiCostumeProducts.GetCostumeProducts() .SingleOrDefault(k => k.CostumeId == p.CostumeProductId && k.CostumeSize == p.CostumeProductSize).ProductId)).ProductName, SubProductId = p.CostumeProductId, ProductImg = GetApiProducts.GetProducts().SingleOrDefault(h => h.ProductId == (GetApiCostumeProducts.GetCostumeProducts() .SingleOrDefault(k => k.CostumeId == p.CostumeProductId && k.CostumeSize == p.CostumeProductSize).ProductId)).ProductImage, Amount = p.CostumeProductAmount, Size = p.CostumeProductSize, Price = p.CostumeProductPrice }).ToList(); details.AddRange(detailForFoods); details.AddRange(detailForToys); details.AddRange(detailForCostumes); InventoryReceivingNote note = GetApiInventoryReceiveNotes.GetInventoryReceivingNotes(credential.JwToken).SingleOrDefault(p => p.InventoryReceivingId == id); InventoryReceivingNoteDetailModelView inventoryReceivingNote = new InventoryReceivingNoteDetailModelView() { InventoryReceivingNote_ID = note.InventoryReceivingId, InventoryReceivingNoteDate = note.InventoryReceivingDateReceiving, TotalPrice = note.InventoryReceivingTotalPrice, Details = details }; return(Json(inventoryReceivingNote)); }
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)); }