Exemplo n.º 1
0
        public SeatClassModel CreateViewModel(SeatClass model)
        {
            SeatClassModel viewModel = null;

            if (model != null)
            {
                viewModel = new SeatClassModel();
                CommonMethods.CopyObjectProperties(model, viewModel);
            }

            return(viewModel);
        }
Exemplo n.º 2
0
        private List <SearchFlightModel> SearchFlight(IEnumerable <SearchFlightModel> searchList, int totalSeat, SeatClassModel seatClass)
        {
            var data = new List <SearchFlightModel>();

            foreach (var search in searchList)
            {
                var check     = true;
                var priceSeat = 0.0;

                foreach (var flight in search.FlightList)
                {
                    var totalSeatClass = seatClass.PlaneSeatClasses.Where(planeSeat => planeSeat.PlaneID == flight.PlaneID)
                                         .Select(planeSeat => planeSeat.Capacity).FirstOrDefault();
                    var totalTicket = flight.TicketFlights.Where(ticketflight => ticketflight.Ticket.Status.Equals(Constant.CONST_DB_TICKET_STATUS_SUCCESS) &&
                                                                 this.SeatMapService.FindBySeatCode(ticketflight.SeatCode, flight.PlaneID.Value).ID == seatClass.ID).Count();
                    priceSeat = seatClass.PlaneSeatClasses.Where(planeSeat => planeSeat.PlaneID == flight.PlaneID)
                                .Select(planeSeat => planeSeat.Price.Value).FirstOrDefault();

                    if (totalSeatClass == null)
                    {
                        check = false; break;
                    }

                    if (totalSeat > (totalSeatClass - totalTicket))
                    {
                        check = false; break;
                    }
                }

                if (check)
                {
                    var airportCode = new List <string>();

                    for (var i = 1; i < search.FlightList.Count(); ++i)
                    {
                        airportCode.Add(search.FlightList[i].Departure.Name.Split('-').First());
                    }

                    search.Price      += priceSeat;
                    search.AirportCode = airportCode;
                    data.Add(search);
                }
            }

            return(data);
        }