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)); }
public AllBookingsView() { InitializeComponent(); DataContext = new AllBookingsViewModel(); }