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);
        }
Example #2
0
        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);
        }