using ShippingCosts.Contracts; namespace ShippingCosts.Implementations; /// /// A base class for different shipping carriers /// public abstract class ShippingCostCalculatorBase(ICountryDistanceProvider countryDistanceProvider) : IShippingCostCalculator { protected ICountryDistanceProvider CountryDistanceProvider { get; } = countryDistanceProvider; public abstract string CarrierName { get; } public abstract decimal? CalculateShippingCosts(string targetCountry, IMeasuredBox box); /// /// Calculates the sum of the longest and shortest side of a box /// /// Dimensions of the box /// Sum of the longest and shortest side protected static int SumOfLongestAndShortestSides(IMeasuredBox box) { // TODO return -1; } }