コード例 #1
0
ファイル: Cart.cs プロジェクト: cynthiaiii4/SOLID-Cart
        public double ShippingFee(string shipper, double length, double width, double height, double weight)
        {
            double finalFee;
            var    goodsFeeInfo = new GoodsFeeInfo
            {
                Length = length,
                Width  = width,
                Height = height,
                Weight = weight,
            };

            if (shipper.Equals("black cat"))
            {
                finalFee = BlackCatFee(goodsFeeInfo);
            }
            else if (shipper.Equals("hsinchu"))
            {
                finalFee = Hsinchu(goodsFeeInfo);
            }
            else if (shipper.Equals("post office"))
            {
                finalFee = PostOffice(goodsFeeInfo);
            }
            else
            {
                throw new ArgumentException("shipper not exist");
            }
            return(finalFee);
        }
コード例 #2
0
ファイル: Cart.cs プロジェクト: cynthiaiii4/SOLID-Cart
        private double PostOffice(GoodsFeeInfo goodsFeeInfo)
        {
            double feeByWeight = 80 + goodsFeeInfo.Weight * 10;
            double size        = goodsFeeInfo.Length * goodsFeeInfo.Width * goodsFeeInfo.Height;
            double feeBySize   = size * 0.00002 * 1100;

            return(feeByWeight < feeBySize ? feeByWeight : feeBySize);
        }
コード例 #3
0
ファイル: Cart.cs プロジェクト: cynthiaiii4/SOLID-Cart
 private double BlackCatFee(GoodsFeeInfo goodsFeeInfo)
 {
     if (goodsFeeInfo.Weight > 20)
     {
         return(500);
     }
     else
     {
         return(100 + goodsFeeInfo.Weight * 10);
     }
 }
コード例 #4
0
ファイル: Cart.cs プロジェクト: cynthiaiii4/SOLID-Cart
        private double Hsinchu(GoodsFeeInfo goodsFeeInfo)
        {
            double size = goodsFeeInfo.Length * goodsFeeInfo.Width * goodsFeeInfo.Height;

            if (goodsFeeInfo.Length > 100 || goodsFeeInfo.Width > 100 || goodsFeeInfo.Height > 100)
            {
                return(size * 0.00002 * 1100 + 500);
            }
            else
            {
                return(size * 0.00002 * 1200);
            }
        }