Ejemplo n.º 1
0
        public void ValidateNumberOfChildrenAndNumberOfAdults(OrderFormValues orderFormValues,
                                                              OrderFormErrors orderFormErrors)
        {
            string numberOfChildren = orderFormValues.NumberOfChildren;
            string numberOfAdults   = orderFormValues.NumberOfAdults;

            CheckIfNumberOfChildrenAndNumberOfAdultsAreIntegers(numberOfChildren, numberOfAdults, orderFormErrors);

            if (orderFormErrors.NumberOfAdultsError == null && orderFormErrors.NumberOfChildrenError == null)
            {
                int.TryParse(numberOfChildren, out int numberOfChildrenParsed);
                int.TryParse(numberOfAdults, out int numberOfAdultsParsed);

                if (numberOfChildrenParsed != 0 && numberOfAdultsParsed == 0)
                {
                    orderFormErrors.NumberOfAdultsError = "При наличии детей должен быть хотя " +
                                                          "бы 1 сопровождающий взрослый";
                    return;
                }

                if ((numberOfChildrenParsed + numberOfAdultsParsed) > orderFormValues.VehicleType.GetPassengersCapacity())
                {
                    orderFormErrors.NumberOfPassengersError = "Количество пассажиров превышает максимальную вместимость " +
                                                              "транспорта";
                    return;
                }

                orderFormErrors.NumberOfAdultsError     = null;
                orderFormErrors.NumberOfChildrenError   = null;
                orderFormErrors.NumberOfPassengersError = null;
            }
        }
Ejemplo n.º 2
0
 public void ValidateOrderFormValues(OrderFormValues orderFormValues, OrderFormErrors orderFormErrors)
 {
     ValidateNumberOfChildrenAndNumberOfAdults(orderFormValues, orderFormErrors);
     ValidateDistance(orderFormValues, orderFormErrors);
     ValidateCargoWeight(orderFormValues, orderFormErrors);
     ValidateVehicleType(orderFormValues, orderFormErrors);
 }
Ejemplo n.º 3
0
        private void ValidateVehicleType(OrderFormValues orderFormValues, OrderFormErrors orderFormErrors)
        {
            if (orderFormValues.VehicleType.Equals(VehicleType.NONE))
            {
                orderFormErrors.VehicleTypeError = "Тип транспорта не указан";
                return;
            }

            orderFormErrors.VehicleTypeError = null;
        }
Ejemplo n.º 4
0
 public OrderForm(OrderFormValuesValidator orderFormValuesValidator,
                  OrderConfigurationFormValuesValidator orderConfigurationFormValuesValidator,
                  OrderCalculator orderCalculator, OrderConverter orderConverter)
 {
     InitializeComponent();
     orderFormValues = new OrderFormValues
     {
         VehicleType = VehicleType.NONE
     };
     orderConfigurationFormValues = new OrderConfigurationFormValues();
     orderFormErrors = new OrderFormErrors();
     orderConfigurationFormErrors  = new OrderConfigurationFormErrors();
     this.OrderFormValuesValidator = orderFormValuesValidator;
     this.OrderConfigurationFormValuesValidator = orderConfigurationFormValuesValidator;
     this.OrderCalculator = orderCalculator;
     this.OrderConverter  = orderConverter;
 }
 public Order convertFromFormValues(OrderFormValues orderForm, OrderConfigurationFormValues orderConfigurationForm)
 {
     return(new Order()
     {
         CargoWeight = double.Parse(orderForm.CargoWeight),
         Distance = double.Parse(orderForm.Distance),
         NumberOfAdults = int.Parse(orderForm.NumberOfAdults),
         NumberOfChildren = int.Parse(orderForm.NumberOfChildren),
         StartTime = orderForm.StartDate,
         VehicleType = orderForm.VehicleType,
         Configuration = new OrderConfiguration()
         {
             AverageFuelConsumptionPerHundredKilometers
                 = double.Parse(orderConfigurationForm.AverageFuelConsumptionPerHundredKilometers),
             DriverJobCostPerHour = double.Parse(orderConfigurationForm.DriverJobCostPerHour),
             FuelLiterCost = double.Parse(orderConfigurationForm.FuelLiterCost)
         }
     });
 }
Ejemplo n.º 6
0
        public void ValidateDistance(OrderFormValues orderFormValues, OrderFormErrors orderFormErrors)
        {
            if (!ValidationUtils.IsDouble(orderFormValues.Distance))
            {
                orderFormErrors.DistanceError = "Расстояние должно быть числом";
            }
            else
            {
                double.TryParse(orderFormValues.Distance, out double parsedDistance);

                if (parsedDistance <= 0)
                {
                    orderFormErrors.DistanceError = "Расстояние должно быть положительным числом";
                    return;
                }

                orderFormErrors.DistanceError = null;
            }
        }
Ejemplo n.º 7
0
        public void ValidateCargoWeight(OrderFormValues orderFormValues, OrderFormErrors orderFormErrors)
        {
            if (!ValidationUtils.IsInteger(orderFormValues.CargoWeight))
            {
                orderFormErrors.CargoWeightError = "Масса груза должна быть целым положительным числом";
                return;
            }

            int.TryParse(orderFormValues.CargoWeight, out int cargoWeight);

            if (cargoWeight <= 0)
            {
                orderFormErrors.CargoWeightError = "Масса груза должна быть целым положительным числом";
                return;
            }

            if (cargoWeight > orderFormValues.VehicleType.GetCargoWeightCapacity())
            {
                orderFormErrors.CargoWeightError = "Масса груза превышает максимальную для данного транспорта";
                return;
            }

            orderFormErrors.CargoWeightError = null;
        }