Exemplo n.º 1
0
        static void Main(string[] args)
        {
            manager = new DeliveryCalculatorBusiness();

            int weight, height, width, length;

            Console.WriteLine("Welcome to Delivery Cost Calculator App!");
            Console.WriteLine("Please input package specifications.");

            weight = ReadUserInput("Weight (KG): ");
            height = ReadUserInput("Height (CM): ");
            width  = ReadUserInput("Width (CM): ");
            length = ReadUserInput("Length (CM): ");

            PackageSpecificationEntity entity = new PackageSpecificationEntity()
            {
                Weight = weight,
                Length = length,
                Width  = width,
                Height = height
            };

            var result = manager.CalculateDelivery(entity);

            PrintResult(result);

            Console.ReadLine();
        }
Exemplo n.º 2
0
        public void CalculateDelivery_ValidIntegers_RejectPackage(int weight, int height, int width, int length)
        {
            PackageSpecificationEntity entity = new PackageSpecificationEntity()
            {
                Weight = weight,
                Length = length,
                Width  = width,
                Height = height
            };

            var result = manager.CalculateDelivery(entity);

            Assert.AreEqual(result.PackageCategory, PackageCategoryEnum.Reject);
        }
Exemplo n.º 3
0
        public DeliveryCostInformationEntity CalculateDelivery(PackageSpecificationEntity packageSpecification)
        {
            DeliveryCostInformationEntity result = new DeliveryCostInformationEntity();

            var packageVolume = PackageVolume(packageSpecification.Length, packageSpecification.Width, packageSpecification.Height);

            if (packageSpecification.Weight > 25)
            {
                result.PackageCategory = PackageCategoryEnum.Reject;
                result.DeliveryCost    = 0;
            }
            else if (packageSpecification.Weight > 10)
            {
                result.PackageCategory = PackageCategoryEnum.HeavyPackage;
                result.DeliveryCost    = packageSpecification.Weight * 15;
            }
            else if (packageVolume < 1500)
            {
                result.PackageCategory = PackageCategoryEnum.SmallPackage;
                result.DeliveryCost    = packageVolume * .05;
            }
            else if (packageVolume < 2500)
            {
                result.PackageCategory = PackageCategoryEnum.MediumPackage;
                result.DeliveryCost    = packageVolume * .04;
            }
            else
            {
                result.PackageCategory = PackageCategoryEnum.LargePackage;
                result.DeliveryCost    = packageVolume * .03;
            }

            result.PackageSpecification = packageSpecification;

            return(result);
        }