Beispiel #1
0
        public ActionResult GetForms(List <string> seats, SeatInCarr model)
        {
            string        validFormat = "MM.dd.yyyy HH:mm:ss";
            CultureInfo   provider    = new CultureInfo("en-US");
            List <string> typesList   = new List <string>();

            typesList = personServ.GetAllPersonTypes();
            SelectList     types = new SelectList(typesList, typesList[0]);
            ForCreateForms param = new ForCreateForms {
                TrainNumber = model.TrainNumber, DepartDateTime = DateTime.ParseExact(model.DepartDateTime, validFormat, provider), PersonTypes = types, CarriageOrder = model.CarrOrder, BeginInputStation = model.BeginInputStation, EndInputStation = model.EndInputStation, SeatsNumbers = seats.Select(s => Convert.ToInt32(s)).ToList()
            };

            return(View(param));
        }
        public List <int> GetSeats(SeatInCarr param, out List <SeatInCarr> allSeats, out List <FreeSeatInCarriage> freeSeats)
        {
            carriageType = param.CarriageType;
            Train train = trainServ.GetItemById(trainServ.GetIdByNumber(param.TrainNumber));

            int carrTypeID = carriageServ.GetCarrTypeIdByCarrType(param.CarriageType);

            string      validatFormat = "MM.dd.yyyy HH:mm:ss";
            CultureInfo provider      = new CultureInfo("en-US");

            freeSeats = mapper.GetFreeSeatsInCarriages(train.ID, DateTime.ParseExact(param.DepartDateTime, validatFormat, provider), carrTypeID, param.BeginInputStation, param.EndInputStation);

            int        countOfSeatsInCarrType = carriageServ.GetCountOfSeatsByCarrType(param.CarriageType);
            List <int> carrOrders             = trainServ.GetCarrOrderInTrainByCarrType(train, carrTypeID);

            allSeats = GetAllSeats(carrOrders, countOfSeatsInCarrType, param);

            return(carrOrders);
        }
        public ActionResult FreeSeatsToView(int carrOrder, SeatInCarr param)
        {
            SeatInCarr seatsForView = allSeats.Where(s => s.CarrOrder == carrOrder).ToList()[0];

            switch (param.CarriageType)
            {
            case "Suite":
                return(PartialView("Suite", seatsForView));

            case "Compartment":
                return(PartialView("Compartment", seatsForView));

            case "Seatpost":
                return(PartialView("Seatpost", seatsForView));

            case "Seating":
                return(PartialView("Seating", seatsForView));
            }
            return(Content("<h2 style='color:red;text-align:center;'>The page does not found</h2>"));
        }
        public ActionResult GetAnotherCarrType(SeatInCarr param)
        {
            List <int> carrOrders = GetSeats(param, out allSeats, out freeSeats);

            return(PartialView(param.CarriageType, allSeats.Where(s => s.CarrOrder == carrOrders[0]).ToList()[0]));
        }
        public ActionResult GetFreeSeatsFromDb(SeatInCarr param)
        {
            List <int> carrOrders = GetSeats(param, out allSeats, out freeSeats);

            return(View("Wagon", allSeats.Where(s => s.CarrOrder == carrOrders[0]).ToList()[0]));
        }
        private List <SeatInCarr> GetAllSeats(List <int> carrOrders, int countOfSeats, SeatInCarr param)
        {
            List <SeatInCarr> result = new List <SeatInCarr>();

            bool isFree;
            Dictionary <int, bool> helper;

            for (int i = 0; i < carrOrders.Count; i++)
            {
                helper = new Dictionary <int, bool>();
                for (int j = 1; j <= countOfSeats; j++)
                {
                    var freeSeat = freeSeats.Where(fs => fs.CarriageOrder == carrOrders[i] && fs.SeatNumbers.Contains(j));
                    if (freeSeat == null || freeSeat.Count() == 0)
                    {
                        isFree = false;
                    }
                    else
                    {
                        isFree = true;
                    }
                    helper.Add(j, isFree);
                }
                result.Add(new SeatInCarr()
                {
                    TrainNumber = param.TrainNumber, CarriageType = param.CarriageType, CarriageTypes = System.Web.Helpers.Json.Decode <List <CarrTypesAndCountOfSeats> >(param.CarriageTypesJson), BeginInputStation = param.BeginInputStation, EndInputStation = param.EndInputStation, BeginStation = param.BeginStation, EndStation = param.EndStation, DepartDateTime = param.DepartDateTime, ArrivalDateTime = param.ArrivalDateTime, Duration = param.Duration, CarrOrder = carrOrders[i], CarrOrdersForActionLink = carrOrders, SeatsNumbers = helper
                });
            }

            return(result);
        }