public MyEventsView GenerateMyEvents(Customer customer, string venueName = null) { var myEventsView = new MyEventsView(); if (customer == null) { return(myEventsView); } var concertTicketsList = ConcertTicketDbContext.ReturnPurchasedTicketsByCustomerId(customer.CustomerId); var venuesList = VenuesDbContext.GetVenues(); var concertsList = new List <Concert>(ConcertDbContext.GetConcerts()); var ticketLevelsList = ConcertTicketDbContext.GetTicketLevels(); foreach (var ticket in concertTicketsList) { var concert = concertsList.Find(c => c.ConcertId.Equals(ticket.ConcertId)); var tempTicket = new PurchasedTicket( concert.Performer.ShortName, concert.ConcertId, venuesList.Find(v => v.VenueId.Equals(concert.VenueId)).VenueName, 1, Convert.ToInt32(ticketLevelsList.Find(l => l.TicketLevelId.Equals(ticket.TicketLevelId)).TicketPrice).ToString(), "N/A", concert.ConcertDate, ticket.ConcertId, concert.VenueId ); switch (Convert.ToInt32(tempTicket.SectionName)) { case 55: tempTicket.SectionName = "219-221"; break; case 60: tempTicket.SectionName = "218-214"; break; case 65: tempTicket.SectionName = "222-226"; break; case 70: tempTicket.SectionName = "210-213"; break; case 75: tempTicket.SectionName = "201-204"; break; case 80: tempTicket.SectionName = "114-119"; break; case 85: tempTicket.SectionName = "120-126"; break; case 90: tempTicket.SectionName = "104-110"; break; case 95: tempTicket.SectionName = "111-113"; break; case 100: tempTicket.SectionName = "101-103"; break; } if (myEventsView.PurchasedTickets.Exists(x => x.ConcertId == ticket.ConcertId && x.SectionName == tempTicket.SectionName)) { var index = myEventsView.PurchasedTickets.FindIndex(x => x.ConcertId == ticket.ConcertId && x.SectionName == tempTicket.SectionName); myEventsView.PurchasedTickets[index].TicketQuantity++; } else { myEventsView.PurchasedTickets.Add(tempTicket); } // Sort all events by date if (myEventsView.PurchasedTickets != null && myEventsView.PurchasedTickets.Count > 0) { myEventsView.PurchasedTickets.Sort((a, b) => a.EventDateTime.CompareTo(b.EventDateTime)); } } return(myEventsView); }