public VariantsViewModel(Direction direction = null) { Title = "Warianty Tras"; Direction = direction; VariantsBackup = new List <Variant>(); RouteStopTimes = new List <RouteStopTimes>(); TestyHiM = new ObservableCollection <StopHoursMinutes>(); StopsTime = new ObservableCollection <StopTime>(); Variants = new ObservableCollection <Variant>(); stopHoursMinutes = new StopHoursMinutes(); routeStopTimes = new RouteStopTimes(); LoadVariants(); SortStopsTime(); Test(); foreach (Variant variant in Variants) { VariantsBackup.Add(variant); } foreach (Variant variant in Variants) { if (variant.routeStopTimes.Count <= 2) { VariantsBackup.Remove(variant); } } Variants.Clear(); foreach (Variant variant in VariantsBackup) { Variants.Add(variant); } }
public VariantSelectedStopTimesViewModel(RouteStopTimes routeStopTimes = null) { RouteStopTimes = routeStopTimes; NoteDescription = RouteStopTimes.NoteDescription; NoteSymbol = RouteStopTimes.NoteSymbol; TomorrowHeightLive = TomorrowHeightStar; TomorrowHeightTime = TomorrowHeightTwoStar; TomorrowHeightTimeTomorrow = TomorrowHeightTwoStar; LiveArrival = true; DelaysCollection = new ObservableCollection <Delay>(); RoutesCollection = new ObservableCollection <Route>(); Test = new Command(async() => await ExecuteLoadItemsCommand()); Test.Execute(null); Title = RouteStopTimes.StopDesc + ", linia: " + RouteStopTimes.RouteId; foreach (StopHoursMinutes SHM in RouteStopTimes.Times) { string minutesStr = ""; SHM.minutes.Sort((x, y) => y.CompareTo(x)); foreach (string item in SHM.minutes) { if (minutesStr == "") { minutesStr = item; } else { minutesStr = item + ", " + minutesStr; } } SHM.minutesString = minutesStr; } if (RouteStopTimes.Times.Count == 0) { IsTimeVisible = false; TomorrowHeightTime = TomorrowHeightZero; } else { IsTimeVisible = true; } foreach (StopHoursMinutes SHM in RouteStopTimes.TimesTomorrow) { string minutesStr = ""; SHM.minutes.Sort((x, y) => y.CompareTo(x)); foreach (string item in SHM.minutes) { if (minutesStr == "") { minutesStr = item; } else { minutesStr = item + ", " + minutesStr; } } SHM.minutesString = minutesStr; } if (RouteStopTimes.TimesTomorrow.Count == 0) { IsTomorrowVisible = false; TomorrowHeightTimeTomorrow = TomorrowHeightZero; } else { IsTomorrowVisible = true; } }
void Test() { if (IsBusy) { return; } IsBusy = true; try { foreach (Variant Variant in Variants) { RouteStopTimes = new List <RouteStopTimes>(); foreach (StopTime stopTime in Variant.stopTimesTest) { if (MaxStopSequence == 0 || MaxStopSequence < int.Parse(stopTime.StopSequence)) { MaxStopSequence = int.Parse(stopTime.StopSequence); } } bool create = false; for (int i = 0; i <= MaxStopSequence; i++) { for (int j = 0; j < 25; j++) { stopHoursMinutes.minutes = new List <string>(); routeStopTimes.Times = new List <StopHoursMinutes>(); routeStopTimes.TimesTomorrow = new List <StopHoursMinutes>(); create = false; foreach (StopTime item in Variant.stopTimesTest) { if (int.Parse(item.StopSequence) == i) { if (item.ArrivalTime.Split(':')[0] != "Następnego dnia o") { if (int.Parse(item.ArrivalTime.Split(':')[0]) == j) { stopHoursMinutes.Hour = item.ArrivalTime.Split(':')[0]; stopHoursMinutes.minutes.Add(item.ArrivalTime.Split(':')[1]); StopName = item.StopDesc; StopId = item.StopId; NoteSymbol = item.NoteSymbol; NoteDescription = item.NoteDescription; OnDemand = item.OnDemand; RouteId = item.RouteId; TicketZoneBorder = item.TicketZoneBorder; WheelchairAccessible = item.WheelchairAccessible; routeStopTimes.WheelchairAccessible = WheelchairAccessible; routeStopTimes.TicketZoneBorder = TicketZoneBorder; routeStopTimes.OnDemand = OnDemand; routeStopTimes.NoteDescription = NoteDescription; routeStopTimes.NoteSymbol = NoteSymbol; routeStopTimes.StopDesc = StopName; routeStopTimes.StopId = StopId; routeStopTimes.RouteId = RouteId; create = true; } } else { if (int.Parse(item.ArrivalTime.Split(':')[1]) == j) { stopHoursMinutes.Hour = item.ArrivalTime.Split(':')[1]; stopHoursMinutes.minutes.Add(item.ArrivalTime.Split(':')[2]); StopName = item.StopDesc; NoteSymbol = item.NoteSymbol; NoteDescription = item.NoteDescription; OnDemand = item.OnDemand; RouteId = item.RouteId; TicketZoneBorder = item.TicketZoneBorder; WheelchairAccessible = item.WheelchairAccessible; routeStopTimes.WheelchairAccessible = WheelchairAccessible; routeStopTimes.TicketZoneBorder = TicketZoneBorder; routeStopTimes.OnDemand = OnDemand; routeStopTimes.NoteDescription = NoteDescription; routeStopTimes.NoteSymbol = NoteSymbol; routeStopTimes.StopDesc = StopName; routeStopTimes.RouteId = RouteId; create = true; Tomorrow = true; } } } } if (create) { TestyHiM.Add(stopHoursMinutes); stopHoursMinutes = null; stopHoursMinutes = new StopHoursMinutes(); } } foreach (StopHoursMinutes SHM in TestyHiM) { if (!Tomorrow) { routeStopTimes.Times.Add(SHM); } else { routeStopTimes.TimesTomorrow.Add(SHM); } } Tomorrow = false; TestyHiM.Clear(); if (routeStopTimes.StopDesc != null) { RouteStopTimes.Add(routeStopTimes); } routeStopTimes = null; routeStopTimes = new RouteStopTimes(); } Variant.routeStopTimes = RouteStopTimes; } } catch (Exception ex) { Debug.WriteLine(ex); App.Current.MainPage.DisplayAlert("Błąd", "Coś poszło nie tak", "OK"); } finally { IsBusy = false; } }