Пример #1
0
        private PricedParcel GetPricedParcel(Parcel parcel, ParcelSettings ps)
        {
            var cost = _parcelCostCalculatorFactory
                       .Get(ps)
                       .GetTotalCost(parcel, ps);

            return(new PricedParcel(parcel, ps, cost));
        }
Пример #2
0
        private static PricedParcel GetDefaultPricedParcel(Parcel parcel)
        {
            var defaultSettings = new ParcelSettings()
            {
                Type = ParcelType.NotSpecified,
            };
            var defaultPricedParcel = new PricedParcel(parcel, defaultSettings, 0m);

            return(defaultPricedParcel);
        }
Пример #3
0
        public IParcelCostCalculator Get(ParcelSettings ps)
        {
            switch (ps.Type)
            {
            case ParcelType.OddSize:
                return(new OddSizeCostCalculator());

            default:
                return(new BaseCostCalculator());
            }
        }
Пример #4
0
 public decimal GetTotalCost(Parcel p, ParcelSettings ps)
 {
     return(ps.BaseCost);
 }
Пример #5
0
 public bool IsValid(Parcel p, ParcelSettings ps)
 {
     return(p.WeightsLess(ps));
 }
Пример #6
0
 private bool IsValid(Parcel parcel, ParcelSettings ps)
 {
     return(_parcelValidationService.IsValid(parcel, ps));
 }
Пример #7
0
 public bool IsValid(Parcel p, ParcelSettings ps)
 {
     return(ps.Type.Equals(ParcelType.OddSize)
         ? p.Dimensions.Volume() <= 60000000
         : true);
 }
Пример #8
0
 public decimal GetTotalCost(Parcel p, ParcelSettings ps)
 {
     return(ps.BaseCost + p.Dimensions.Volume() / 10000000m);
 }
Пример #9
0
 public bool IsValid(Parcel p, ParcelSettings ps)
 {
     return(p.FitsIntoWhenRotated(ps));
 }
Пример #10
0
 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);
 }
Пример #11
0
 public static bool WeightsLess(this Parcel parcel, ParcelSettings settings)
 {
     return(parcel.Weight <= settings.MaxWeight);
 }
Пример #12
0
 public bool IsValid(Parcel p, ParcelSettings ps)
 {
     return(_validationRules.All(r => r.IsValid(p, ps)));
 }
Пример #13
0
 public static bool FitsIntoWhenRotated(this Parcel parcel, ParcelSettings settings)
 {
     return(parcel.Dimensions.Rotate().FitsInto(settings.MaxDimensions.Rotate()));
 }
Пример #14
0
 public static bool FitsInto(this Parcel parcel, ParcelSettings settings)
 {
     return(parcel.Dimensions.FitsInto(settings.MaxDimensions));
 }