Beispiel #1
0
        public void CreateNewTickets(ref List <TicketVM> tickets, InformAboutPassengers personsInf)
        {
            CarriageType    carrType         = carrServ.GetCarrTypyById(carrServ.GetCarrTypeIdByCarrType(tickets[0].CarriageType));
            Carriage        carr             = carrServ.GetCarrByTypeOrderAndTrain(carrType.ID, tickets[0].CarriageOrder, tickets[0].TrainNumber);
            StationOnRoute  startStatOnRoute = statOnRouteServ.GetByTrainNumbAndStation(tickets[0].TrainNumber, tickets[0].StartStation);
            StationOnRoute  endStatOnRoute   = statOnRouteServ.GetByTrainNumbAndStation(tickets[0].TrainNumber, tickets[0].EndStation);
            ReservationSeat seat;
            Person          person;
            bool            haveTea = false;
            bool            haveBed = false;

            for (int i = 0; i < tickets.Count(); i++)
            {
                int maxIdInResrvSeat = seatServ.GetMaxId();
                seat = new ReservationSeat()
                {
                    ID = maxIdInResrvSeat + 1, Number = tickets[i].SeatNumber, CarriageID = carr.ID, IsDeleted = false
                };
                seatServ.Create(seat);
                if (!personServ.PersonExist(tickets[i].FirstName, tickets[i].LastName, tickets[i].BirthDate, tickets[i].PersonType))
                {
                    int maxIdInPerson = personServ.GetMaxId();
                    int personTypeId  = personServ.GetPersonTypeIdByType(tickets[i].PersonType);
                    person = new Person()
                    {
                        ID = maxIdInPerson + 1, FirstName = tickets[i].FirstName, LastName = tickets[i].LastName, BirthDate = tickets[i].BirthDate, Email = personsInf.Email[i], Phone = personsInf.Phone[i], PersonTypeID = personTypeId, IsDeleted = false
                    };
                    personServ.Create(person);
                }
                else
                {
                    person = personServ.GetPersonByFLNameBirthType(tickets[i].FirstName, tickets[i].LastName, tickets[i].BirthDate, tickets[i].PersonType);
                }
                int    maxIdInTicket = ticketServ.GetMaxId();
                Ticket ticket        = new Ticket()
                {
                    ID = maxIdInTicket + 1, PersonID = person.ID, DepartureDateTime = tickets[i].DepartureDateTime, ArrivalDateTime = tickets[i].ArrivalDateTime, ReservationSeatID = seat.ID, StationOnRouteStartID = startStatOnRoute.ID, StationOnRouteEndID = endStatOnRoute.ID, IsDeleted = false
                };
                ticketServ.Create(ticket);
                if (tickets[i].HaveTea)
                {
                    haveTea = true;
                }
                if (tickets[i].HaveBed)
                {
                    haveBed = true;
                }
                tickets[i].Price = sqlProcService.GetTicketPrice(ticket.ID, haveTea, haveBed);
                ticketServ.AddPriceForTicket(ticket.ID, tickets[i].Price);
                haveTea = false;
                haveBed = false;
            }
        }
Beispiel #2
0
 public override string ToString()
 {
     return($"Carriage with ID {ID}; type={CarriageType.ToString()}");
 }
Beispiel #3
0
 public static decimal GetPrice(CarriageType carriageType)
 {
     return(100 + Convert.ToInt32(carriageType) * 25);
 }