private PricedParcel GetPricedParcel(Parcel parcel, ParcelSettings ps) { var cost = _parcelCostCalculatorFactory .Get(ps) .GetTotalCost(parcel, ps); return(new PricedParcel(parcel, ps, cost)); }
private static PricedParcel GetDefaultPricedParcel(Parcel parcel) { var defaultSettings = new ParcelSettings() { Type = ParcelType.NotSpecified, }; var defaultPricedParcel = new PricedParcel(parcel, defaultSettings, 0m); return(defaultPricedParcel); }
public IParcelCostCalculator Get(ParcelSettings ps) { switch (ps.Type) { case ParcelType.OddSize: return(new OddSizeCostCalculator()); default: return(new BaseCostCalculator()); } }
public decimal GetTotalCost(Parcel p, ParcelSettings ps) { return(ps.BaseCost); }
public bool IsValid(Parcel p, ParcelSettings ps) { return(p.WeightsLess(ps)); }
private bool IsValid(Parcel parcel, ParcelSettings ps) { return(_parcelValidationService.IsValid(parcel, ps)); }
public bool IsValid(Parcel p, ParcelSettings ps) { return(ps.Type.Equals(ParcelType.OddSize) ? p.Dimensions.Volume() <= 60000000 : true); }
public decimal GetTotalCost(Parcel p, ParcelSettings ps) { return(ps.BaseCost + p.Dimensions.Volume() / 10000000m); }
public bool IsValid(Parcel p, ParcelSettings ps) { return(p.FitsIntoWhenRotated(ps)); }
public static bool FitsInto(this Parcel parcel, ParcelSettings settings) { return(parcel.Dimensions.Length <= settings.Dimensions.Length && parcel.Dimensions.Breadth <= settings.Dimensions.Breadth && parcel.Dimensions.Height <= settings.Dimensions.Height); }
public static bool WeightsLess(this Parcel parcel, ParcelSettings settings) { return(parcel.Weight <= settings.MaxWeight); }
public bool IsValid(Parcel p, ParcelSettings ps) { return(_validationRules.All(r => r.IsValid(p, ps))); }
public static bool FitsIntoWhenRotated(this Parcel parcel, ParcelSettings settings) { return(parcel.Dimensions.Rotate().FitsInto(settings.MaxDimensions.Rotate())); }
public static bool FitsInto(this Parcel parcel, ParcelSettings settings) { return(parcel.Dimensions.FitsInto(settings.MaxDimensions)); }