// GET: EditRecord public ActionResult Index() { SKUDetailViewModel data = new SKUDetailViewModel(); if (RouteData.Values.ContainsKey("id")) { string skuId = RouteData.Values["id"].ToString(); data = InWebService.HttpRequest <SKUDetailViewModel>("Inventory/GetSkuInfo?skuId=" + skuId); data.Locations = GetLocations(); data.Departments = GetDepartments(data.LocationId); data.Categories = GetCategories(data.LocationId, data.DepartmentId); data.Subcategories = GetSubcategories(data.LocationId, data.DepartmentId, data.CategoryId); } return(View(data)); }
public async Task <IActionResult> Product(int skuId) { var sku = await _context.SKUs .Include(x => x.Option) .Include(x => x.Product) .Include(x => x.SKUOptions) .ThenInclude(x => x.Size) .Include(x => x.SKUPictures) .SingleOrDefaultAsync(x => x.Id == skuId); if (sku == null) { return(RedirectToAction("Products")); } var relatedSKUs = await _context.SKUs .Include(x => x.Option) .Include(x => x.SKUPictures) .Where(x => x.ProductId == sku.ProductId && x.Id != sku.Id) .Select(x => new RelatedSKUsViewModel { SKUId = x.Id, OptionName = x.Option.Name, ImageUrl = x.SKUPictures.FirstOrDefault().ImageUrl }) .ToListAsync(); var optionGroup = await _context.OptionGroups.SingleOrDefaultAsync(x => x.Id == sku.Option.OptionGroupId); //find first available skuOption index int firstAvailableSKUOptionIndex = -1; for (int i = 0; i < sku.SKUOptions.Count; i++) { if (sku.SKUOptions[i].IsAvailable && sku.SKUOptions[i].Stock > 0) { firstAvailableSKUOptionIndex = i; break; } } var skuDetailViewModel = new SKUDetailViewModel { Id = sku.Id, Price = sku.Price, IsDiscounted = sku.IsDiscounted, DiscountedPrice = sku.DiscountedPrice, Name = sku.Product.Name, Description = sku.Product.Description, OptionName = sku.Option.Name, SKUOptions = sku.SKUOptions, FirstSKUPicture = sku.SKUPictures.FirstOrDefault(), SKUPictures = sku.SKUPictures.Skip(1).ToList(), FirstAvailableSKUOptionIndex = firstAvailableSKUOptionIndex, RelatedSKUs = relatedSKUs, OptionGroup = optionGroup }; return(View(skuDetailViewModel)); }