private Dictionary <int, decimal> GetVatRates() { var vatRates = _vatConfigurationProvider .GetVatConfigurations() .Select(vcp => new { id = vcp.Id, rate = _vatConfigurationService.GetRate(vcp) }) .ToDictionary(a => a.id, a => a.rate); vatRates.Add(0, _vatConfigurationService.GetRate(_vatConfigurationService.GetDefaultCategory())); return(vatRates); }
public ProductPriceEditorViewModel( ProductVatConfigurationPart vatPart, IShippingMethod shipping, IVatConfigurationService vatConfigurationService) : this(vatPart) { // There are two different cases here: FlexibleShippingMethodPart or the others HasDiscount = false; var rate = vatConfigurationService.GetRate(vatPart.VatConfigurationPart ?? vatConfigurationService.GetDefaultCategory()); if (shipping is FlexibleShippingMethodPart) { ShowShape = true; var flexible = shipping as FlexibleShippingMethodPart; BasePrice = flexible.DefaultPrice; BaseTaxedPrice = Math.Round(flexible.DefaultPrice * (1.0m + rate), 2); OriginalPriceId = "FlexibleShippingMethodPart_DefaultPrice"; } // NOTE: VAT configuration currently only works properly and is tested // for FlexibleShippingMethodPart. Other IShippingMethod implementations // likely don't work with it. }