public float CalculateBestPrice(LogisticsForIPods iPodLogisticsDistribution) { iPodLogisticsDistribution.PricePayableFor.PrimaryCountry = CalculatePriceByCountry(iPodLogisticsDistribution.UnitsDeliverable.ByPrimaryCounry, iPodLogisticsDistribution.PricePerUnit.PrimaryCountry, false); if (iPodLogisticsDistribution.IsExtraShippingPriceRequired) { iPodLogisticsDistribution.PricePayableFor.SecondaryCountry = CalculatePriceByCountry(iPodLogisticsDistribution.UnitsDeliverable.BySecondaryCounry, iPodLogisticsDistribution.PricePerUnit.SecondaryCountry, true); } return(iPodLogisticsDistribution.PricePayableFor.PrimaryCountry + iPodLogisticsDistribution.PricePayableFor.SecondaryCountry); }
public LogisticsForIPods CalculateIPodsLogistics(string primaryCountry, int totalRequiredNumberOfUnits) { if ((totalRequiredNumberOfUnits > (Convert.ToInt32(CountryStorageCapacity.ArgentinaStorage) + Convert.ToInt32(CountryStorageCapacity.BrazilStorage))) || totalRequiredNumberOfUnits % 10 != 0) { return(null); } var ipodLogistics = new LogisticsForIPods() { CountryNames = _countryDeliverableSevice.GetCountryDeliverableOrder(primaryCountry), UnitsDeliverable = _unitsService.GetUnitsDeliverablePerCountry(primaryCountry.ToLower(), totalRequiredNumberOfUnits), PricePerUnit = _countryPriceService.CalculatePricePerCountry(primaryCountry), PricePayableFor = new CountryBestPrice() }; ipodLogistics.IsExtraShippingPriceRequired = _countryPriceService.IsExtraShippingCostRequired(ipodLogistics.UnitsDeliverable.BySecondaryCounry); return(ipodLogistics); }