public void BeginFetchTicketServiceLocation(ObservableTicket ticket) { var awaiter = sApiManager.GetServiceLocationAsync(ticket.Inner.customerId, ticket.Inner.serviceLocationId).GetAwaiter(); awaiter.OnCompleted(() => { ServiceLocation serviceLocation = awaiter.GetResult(); ticket.ServiceLocation = serviceLocation; }); }
public void BeginFetchTicketCustomer(ObservableTicket ticket) { var awaiter = sApiManager.GetCustomerAsync(ticket.Inner.customerId).GetAwaiter(); awaiter.OnCompleted(() => { Customer customer = awaiter.GetResult(); ticket.Customer = customer; }); }
//public class ListFilter //{ // List<String> AcceptableTicketStatus = new List<String>(); //} private void ProcessUpdatedLicketList(List <Ticket> ticketList) { var displayLists = new[] { ToScheduleDataItems, TodayDataItems, FireInspectionDataItems }; List <ObservableTicket> itemsInLists = new List <ObservableTicket>(); foreach (var testList in displayLists) { itemsInLists.AddRange(testList); //foreach (var obsTicket in testList) // itemsInLists.AddLast(obsTicket); } foreach (Ticket t in ticketList) { var list = DetermineTicketList(t); ObservableTicket prevTicket = null; foreach (var testList in displayLists) { prevTicket = testList.FirstOrDefault(ot => ot.Inner.ticketId == t.ticketId); if (prevTicket != null) { if (ReferenceEquals(testList, list)) { prevTicket.ResetTicket(t); // update the ticket TODO check property change BeginFetchTicketServiceLocation(prevTicket); list = null; //don't add to list below } else // this ticket no longer belongs in this list { testList.Remove(prevTicket); } //This ticket was in a list so lets remove it from itemsInLists itemsInLists.Remove(prevTicket); break; // tickets can't be in multiple lists } } if (list != null) { ObservableTicket obsTick = new ObservableTicket(t); //fetchTicketCustomer(obsTick); //if (t.serviceLocationId != t.customerId) BeginFetchTicketServiceLocation(obsTick); list.Add(obsTick); } } //remove anything left in itemsInLists from all the lists foreach (ObservableTicket obsTicket in itemsInLists) { foreach (var testList in displayLists) { if (testList.Remove(obsTicket)) { break; // go to next ticket } } } }