public IEnumerable <ProductBasicViewModel> MappingVModel(IEnumerable <Product> products) { List <ProductBasicViewModel> ListProductViewModel = new List <ProductBasicViewModel>(); //Xử lý Product foreach (var product in products) { // Product Detail List <ProductDetail> listDetailProduct = productDetailService.GetList(product.Id); if (listDetailProduct == null || listDetailProduct.Count == 0) { continue; } ProductDetail detailProduct = listDetailProduct.FirstOrDefault(); ProductPrice priceNav = new ProductPrice(); priceNav = priceService.GetOne(detailProduct.Price.GetValueOrDefault()); // Xử lý khi Detail null double?price = double.NaN; // Add to ViewModel if (detailProduct != null) { price = priceNav.Price; } // Image Image image = imageService.Get(product.Id); ImageBasicViewModel imageViewModel = new ImageBasicViewModel(); // Add to ViewModel // Xử lý khi Image null if (image != null) { imageViewModel.SetURL = image.Url; } List <ImageBasicViewModel> imagesTemp = new List <ImageBasicViewModel> { imageViewModel }; ProductBasicViewModel productViewModel = new ProductBasicViewModel { Id = product.Id, Name = product.Name, //UserName //CatalogName PriceProduct = price, Images = imagesTemp }; // Add product into ViewModel ListProductViewModel.Add(productViewModel); } return(ListProductViewModel.AsEnumerable()); }
public IActionResult ProductManager(int catalogSelect, string keySearch, int page = 1, int pageSize = 5) { var Catalogs = new ComboBoxController().GetCatalogs(MODE_MANAGER); // if (string.IsNullOrWhiteSpace(keySearch)) { keySearch = " "; } List <Product> products = new List <Product>(); products = productService.SearchFullText(keySearch, catalogSelect, 1); // List <ProductBasicViewModel> listProduct = new List <ProductBasicViewModel>(); foreach (var p in products) { string userName = string.Empty; User user = userService.Get(p.CreateByUser); if (user != null) { userName = user.HoTen; } ProductBasicViewModel product = new ProductBasicViewModel() { Id = p.Id, Name = p.Name, UserName = userName, State = p.State }; listProduct.Add(product); } // ProductManagerViewModel model = new ProductManagerViewModel(listProduct, page, pageSize, Catalogs, keySearch, catalogSelect); return(View(model)); }
public async Task GetRequest(ProductBasicViewModel model) { await Clients.All.SendAsync("ReloadQuantity", model); }
public IActionResult Product(int productID) { ProductBasicViewModel model; // View model ProductDetailBasicViewModel productDetailBasicViewModel; // Mapping data form model to view model ImageBasicViewModel imageBasicViewModel; // Mapping data form model to view model RateViewModel rateViewModel; // Mapping data form model to view model int priceID; // Get price ID of product detail int sizeID; // Get size ID of product detail int colorID; // Get color ID of product detail List <ProductType> productTypes; // Get size and color of product detail int totalRate = 0; // Get total of rates string[] starRate = new string[5]; string query = "RatePercent @productID"; // Get data of product Product product = new Product(); product = (productID == 0) ? new Product() : productService.Get(productID); if (product == null) { return(View()); } var productDetails = productDetailService.GetList(productID); // Get product detail list var images = imageService.GetList(productID); // Get image list //var rates = rateService.GetRates(query, // new SqlParameter("@ProductID", productID)); // Get rate list var rates = rateService.GetRatesOfProduct(productID); // Get rate list // Mapping product model = new ProductBasicViewModel(product); // Mapping product detail foreach (var detail in productDetails) { // Get price of product detail priceID = detail.Price.GetValueOrDefault(); detail.PriceNavigation = priceService.GetOne(priceID); // Get size and color of product detai sizeID = detail.Size.GetValueOrDefault(); colorID = detail.Color.GetValueOrDefault(); productTypes = productTypeService.GetSizeColor(sizeID, colorID); detail.SizeNavigation = productTypes[0]; detail.ColorNavigation = productTypes[1]; productDetailBasicViewModel = new ProductDetailBasicViewModel(detail); model.Details.Add(productDetailBasicViewModel); } model.GroupBySize = model.Details .OrderBy(s => s.Size) .GroupBy(s => s.Size) .Select(grp => grp.ToList()) .ToList(); // Mapping image foreach (var image in images) { imageBasicViewModel = new ImageBasicViewModel(image); model.Images.Add(imageBasicViewModel); } // Mapping rate foreach (var rate in rates) { rate.RateUser = userService.Get(rate.UserId); totalRate += rate.Star.GetValueOrDefault(); rateViewModel = new RateViewModel(rate); model.Rates.Add(rateViewModel); } var ratePercents = rateService.GetRatePercent(query, new SqlParameter("@productID", productID)); foreach (var ratePercent in ratePercents) { starRate[ratePercent.Star.GetValueOrDefault() - 1] = ratePercent.Contents; } for (int i = 0; i < 5; i++) { if (string.IsNullOrEmpty(starRate[i])) { starRate[i] = "0%"; } else { starRate[i] += "%"; } } model.PriceProduct = model.Details.First().PriceText; // Get price of first detail int conntRates = (rates.Count == 0) ? 1 : rates.Count; model.AvgRate = Math.Round((double)totalRate / conntRates, 2); model.RateList = starRate; return(View(model)); }