Implemented LuxuryShippingCostCalculator.cs

This commit is contained in:
MarcUs7i 2025-05-09 23:43:03 +02:00
parent d2424e2c67
commit 295192dcfa

View file

@ -9,16 +9,27 @@ namespace ShippingCosts.Implementations;
public sealed class LuxuryShippingCostCalculator(ICountryDistanceProvider countryDistanceProvider)
: ShippingCostCalculatorBase(countryDistanceProvider)
{
public override string CarrierName => string.Empty; // TODO
public override string CarrierName => "LuxuryShipping";
public override decimal? CalculateShippingCosts(string targetCountry, IMeasuredBox box)
{
//const decimal MaxPrice = 4444M;
const decimal MaxPrice = 4444M;
// TODO
var countryInfo = CountryDistanceProvider.GetDistanceTo(targetCountry);
if (countryInfo == null)
{
return null;
}
double width = ToCentimeters(box.Width);
double height = ToCentimeters(box.Height);
double depth = ToCentimeters(box.Depth);
double boxSizeCost = Math.Pow(width * height * depth, 2);
decimal totalCost = (decimal)(countryInfo.Value.ApproxDistance * boxSizeCost);
return Math.Min(totalCost, MaxPrice);
return null;
//static double ToCentimeters(double millimeters) => millimeters / 10D;
static double ToCentimeters(double millimeters) => millimeters / 10D;
}
}