public void GetVariantFromOptions_ReturnVariant() { var variants = variantRepository.GetByProductId(skuWithVariants.SKUID).ToList(); var firstVariant = variants.FirstOrDefault(); var options = firstVariant.ProductAttributes.Select(o => o.SKUID).ToList(); var selectedVariant = variantRepository.GetByProductIdAndOptions(skuWithVariants.SKUID, options); CMSAssert.All( () => Assert.NotNull(selectedVariant, "Variant for selected options was not returned."), () => Assert.AreEqual(selectedVariant.ProductAttributes.Count(), options.Count(), "Variant has wrong option count.") ); }
public JsonResult Variant(List <int> options, int parentProductID) { var variant = mVariantRepository.GetByProductIdAndOptions(parentProductID, options); if (variant == null) { return(Json(new { stockMessage = ResHelper.GetString("DancingGoatMvc.Product.NotAvailable"), totalPrice = "-" })); } var variantPrice = mCalculationService.CalculateDetailPrice(variant); var isInStock = !variant.InventoryTracked || variant.AvailableItems > 0; return(GetVariantResponse(variantPrice, isInStock, isInStock ? "DancingGoatMvc.Product.InStock" : "DancingGoatMvc.Product.OutOfStock", variant.VariantSKUID)); }
public JsonResult Variant(List <int> options, int parentProductID) { var variant = mVariantRepository.GetByProductIdAndOptions(parentProductID, options); if (variant == null) { return(Json(new { stockMessage = ResHelper.GetString("DancingGoatMvc.Product.NotAvailable"), totalPrice = "-" })); } var cart = mShoppingService.GetCurrentShoppingCart(); var variantPrice = mCalculationService.CalculatePrice(variant.Variant); var isInStock = ((variant.Variant.SKUTrackInventory == TrackInventoryTypeEnum.Disabled) || (variant.Variant.SKUAvailableItems > 0)); return(GetVariantResponse(variantPrice, isInStock, isInStock ? "DancingGoatMvc.Product.InStock" : "DancingGoatMvc.Product.OutOfStock", variant.Variant.SKUID, cart.Currency)); }