Exemplo n.º 1
0
        public ActionResult SelectTrain(SelectTrainRequestModel request)
        {
            var dailyRoutes = railwayService.GetDailyRoutes(
                request.DepartureDate,
                request.StartStationId,
                request.DestinationStationId);

            var trains = new List <SelectTrainViewModel.TrainData>();

            foreach (var dailyRoute in dailyRoutes)
            {
                var startTime       = railwayService.CalculateArrivalDepartureTime(dailyRoute, request.StartStationId);
                var destinationTime = railwayService.CalculateArrivalDepartureTime(dailyRoute, request.DestinationStationId);

                var cars = new List <SelectTrainViewModel.TrainData.CarTypeData>();
                foreach (var car in dailyRoute.Route.Train.Cars)
                {
                    var carTypesData = new SelectTrainViewModel.TrainData.CarTypeData
                    {
                        CarTypeName        = car.CarType.TypeName,
                        Cost               = railwayService.CalculateCost(dailyRoute, request.StartStationId, request.DestinationStationId, car.CarType),
                        AvailableSeatCount = railwayService.CalculateAvailableSeats(dailyRoute, car.CarTypeId),
                    };

                    cars.Add(carTypesData);
                }

                var trainData = new SelectTrainViewModel.TrainData
                {
                    DailyRouteId  = dailyRoute.DailyRouteId,
                    TrainNumber   = dailyRoute.Route.Train.TrainNumber,
                    DepartureTime = startTime,
                    ArrivalTime   = destinationTime,
                    TripTime      = destinationTime - startTime,
                    IsDeLuxe      = dailyRoute.Route.Train.IsDeLuxe,
                    IsElectronicRegistrationAvailable = dailyRoute.Route.Train.IsElectronicRegistrationAvailable,
                    IsExpress = dailyRoute.Route.Train.IsElectronicRegistrationAvailable,
                    Cars      = cars
                };

                trains.Add(trainData);
            }

            var formModel = new SelectTrainFormModel()
            {
                StartStationId       = request.StartStationId,
                DestinationStationId = request.DestinationStationId,
            };

            var model = new SelectTrainViewModel
            {
                CarTypes  = railwayService.GetAllCarTypes(),
                Trains    = trains,
                FormModel = formModel
            };

            return(View(model));
        }
Exemplo n.º 2
0
        public ActionResult SelectTrain([Bind(Prefix = "FormModel")] SelectTrainFormModel form)
        {
            var requestModel = new SelectCarRequestModel
            {
                DailyRouteId         = form.DailyRouteId,
                StartStationId       = form.StartStationId,
                DestinationStationId = form.DestinationStationId
            };

            return(RedirectToAction("SelectCar", requestModel));
        }