Esempio n. 1
0
        public IActionResult All()
        {
            var bookings = this.db.Bookings
                           .Include(x => x.Payment)
                           .Include(x => x.Flights)
                           .ThenInclude(x => x.Flight)
                           .ThenInclude(x => x.Airports)
                           .ThenInclude(x => x.Airport)
                           .Where(x => x.Deleted == false)
                           .ToList();

            var model = new AllBookingsViewModel();

            var userBookings = new List <UserBooking>();

            if (User.IsInRole("Admin"))
            {
                userBookings = this.db.UserBookings
                               .Include(x => x.ApplicationUser)
                               .Include(x => x.Booking)
                               .ToList();
            }
            else
            {
                userBookings = this.db.UserBookings
                               .Include(x => x.ApplicationUser)
                               .Include(x => x.Booking)
                               .Where(x => x.ApplicationUser.UserName == User.Identity.Name)
                               .ToList();
            }

            foreach (var booking in bookings)
            {
                if (userBookings.Any(x => x.Booking == booking))
                {
                    model.Bookings.Add(new BookingViewModel
                    {
                        Amount   = booking.Payment.Amount.ToString("F2"),
                        Id       = booking.Id,
                        Currency = booking.Payment.Currency.ToString(),
                        User     = userBookings.Where(x => x.Booking == booking).Select(x => x.ApplicationUser.UserName).FirstOrDefault(),
                        Inbound  = booking.Flights.Count() > 1
                                ?
                                   booking
                                   .Flights
                                   .ToList()[1]
                                   .Flight
                                   .Airports
                                   .Where(x => x.Type == AirportType.Origin)
                                   .Select(x => x.Airport.Name)
                                   .FirstOrDefault()
                                   + " - " +
                                   booking
                                   .Flights
                                   .ToList()[1]
                                   .Flight
                                   .Airports
                                   .Where(x => x.Type == AirportType.Destination)
                                   .Select(x => x.Airport.Name)
                                   .FirstOrDefault()
                                :
                                   "One Way Ticket",
                        Outbound = booking.Flights.Count() > 0
                            ?
                                   booking
                                   .Flights
                                   .ToList()[0]
                                   .Flight
                                   .Airports
                                   .Where(x => x.Type == AirportType.Origin)
                                   .Select(x => x.Airport.Name)
                                   .FirstOrDefault()
                                   + " - " +
                                   booking
                                   .Flights
                                   .ToList()[0]
                                   .Flight
                                   .Airports
                                   .Where(x => x.Type == AirportType.Destination)
                                   .Select(x => x.Airport.Name)
                                   .FirstOrDefault()
                            :
                                   "",
                    });
                }
            }
            return(View(model));
        }
Esempio n. 2
0
        public AllBookingsView()
        {
            InitializeComponent();

            DataContext = new AllBookingsViewModel();
        }