Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        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;
            }
        }