コード例 #1
0
        void rozklad(object sender, OpenReadCompletedEventArgs e)
        {
            using (var reader = new StreamReader(e.Result))
            {
                string   value    = reader.ReadToEnd();
                string[] response = Regex.Split(value, "<br>");
                ile_dodano = 0;
                for (int i = 0; i < response.Length; i++)
                {
                    if (response[i] != "" && response[i] != "Morska ")
                    {
                        if (response[i] == "Hipermarket Tesco ")
                        {
                            Przystanek p = new Przystanek()
                            {
                                Name = " " + response[i] + "- Morska", ImagePath = "/Assets/BusS.png", forgroundColor = "Green", fontsize = "20"
                            };
                            List.Items.Insert(selected + ile_dodano + 1, p);
                        }
                        else
                        {
                            Przystanek p = new Przystanek()
                            {
                                Name = " " + response[i], ImagePath = "/Assets/BusS.png", forgroundColor = "Green", fontsize = "20"
                            };
                            List.Items.Insert(selected + ile_dodano + 1, p);
                        }

                        ile_dodano++;
                    }
                }
                ile.Add(ile_dodano);
            }
        }
コード例 #2
0
 public ElementTrasy(Linia linia, TimeSpan czasOczekiwania, TimeSpan czasPrzejazdu, Przystanek przystanek) : this()
 {
     this.linia           = linia;
     this.czasOczekiwania = czasOczekiwania;
     this.czasPrzejazdu   = czasPrzejazdu;
     this.przystanek      = przystanek;
 }
 public PrymitywnyPasazerDijkstry(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy,
                                  Przystanek przystanekKoncowy, Graf <TimeSpan> graf, TimeSpan czasStworzenia)
     : base(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy)
 {
     this.graf     = graf;
     trasaPasazera = ZnajdzTrase(graf);
 }
コード例 #4
0
 public ElementTrasy(ElementTrasy elem) : this()
 {
     linia           = elem.linia;
     czasOczekiwania = elem.czasOczekiwania;
     czasPrzejazdu   = elem.czasPrzejazdu;
     przystanek      = elem.przystanek;
 }
コード例 #5
0
        public PrzyplywPasazerow StworzPrzyplyw(TimeSpan czas, Przystanek przystanek)
        {
            var rezultat = new PrzyplywPasazerow(czas, przystanek);

            przyplywyPasazerow.Add(rezultat);

            return(rezultat);
        }
コード例 #6
0
 private PrzystanekViewModel()
 {
     CurrentPage = PageType.PrzystanekConstants;
     przystanek  = new Przystanek();
     GoToMenu    = new RelayCommand(() =>
     {
         przystanek = new Przystanek();
         OnPropertyChanged("Przystanek");
         CurrentPage = PageType.PrzystanekConstants;
         OnPropertyChanged("CurrentPage");
         MainWindowViewModel.Instance.CurrentPage = PageType.MainPage;
         MainWindowViewModel.Instance.OnPropertyChanged("CurrentPage");
     });
     OpenThresholds = new RelayCommand(() =>
     {
         CurrentPage = PageType.PrzystanekThresholds;
         OnPropertyChanged("CurrentPage");
     });
     DodajWpisPasazerowie = new RelayCommand(() =>
     {
         ProgiPasazerow.Add(new WpisProguPrzystankuViewModel());
         OnPropertyChanged("ProgiPasazerow");
     });
     WyczyscWpisyPasazerowie = new RelayCommand(() =>
     {
         przystanek.ProgiPasazerow.Clear();
         OnPropertyChanged("ProgiPasazerow");
     });
     UsunWpisPasazerowie = new ParameteredRelayCommand <DataGrid>((dGrid) =>
     {
         var item = dGrid.SelectedItem;
         if (item != null && item is WpisProguPrzystankuViewModel)
         {
             przystanek.ProgiPasazerow.Remove((WpisProguPrzystankuViewModel)item);
             OnPropertyChanged("ProgiPasazerow");
         }
     });
     DodajWpisAutobusy = new RelayCommand(() =>
     {
         ProgiAutobusow.Add(new WpisProguPrzystankuViewModel());
         OnPropertyChanged("ProgiAutobusow");
     });
     WyczyscWpisyAutobusy = new RelayCommand(() =>
     {
         przystanek.ProgiAutobusow.Clear();
         OnPropertyChanged("ProgiAutobusow");
     });
     UsunWpisPasazerowie = new ParameteredRelayCommand <DataGrid>((dGrid) =>
     {
         var item = dGrid.SelectedItem;
         if (item != null && item is WpisProguPrzystankuViewModel)
         {
             przystanek.ProgiAutobusow.Remove((WpisProguPrzystankuViewModel)item);
             OnPropertyChanged("ProgiAutobusow");
         }
     });
 }
コード例 #7
0
 public WpisStatusuLinii(bool czyPrzejazdUwarunkowany, TimeSpan czas, TimeSpan czasStartu, double dostepnaDlugoscZatoki, Przystanek przystanekWpisu,
                         PowodBrakuUwarunkowania powod = PowodBrakuUwarunkowania.LiczbaPasazerow)
 {
     this.czyPrzejazdUwarunkowany = czyPrzejazdUwarunkowany;
     this.czasStartu            = czasStartu;
     this.czas                  = czas;
     this.dostepnaDlugoscZatoki = dostepnaDlugoscZatoki;
     this.powod                 = powod;
     this.przystanekWpisu       = przystanekWpisu;
 }
コード例 #8
0
 protected virtual void UstawElementyTrasyJakoPrzebyte(Przystanek przystanek)
 {
     foreach (var elem in trasaPasazera)
     {
         if (!elem.CzyPrzebyty && elem.Przystanek != przystanek)
         {
             elem.CzyPrzebyty = true;
             return;
         }
     }
 }
コード例 #9
0
        public Wierzcholek <T> ZnajdzWierzcholekZawierajacyPrzystanek(Przystanek przystanek)
        {
            foreach (Wierzcholek <T> wierzcholek in wierzcholki)
            {
                if (wierzcholek.przystanek == przystanek)
                {
                    return(wierzcholek);
                }
            }

            throw new Exception($"Nie odnaleziono przystanku {przystanek.NazwaPrzystanku} w grafie!");
        }
コード例 #10
0
        private bool CzyTrasaObliczona(Przystanek przystanekStartowy, Przystanek przystanekKoncowy)
        {
            foreach (var otrasa in obliczoneTrasy)
            {
                if (otrasa[0] == przystanekStartowy &&
                    otrasa[otrasa.Count - 1] == przystanekKoncowy)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #11
0
        protected TrasaPasazera CzyTrasaObliczona(Przystanek przystanekStartowy, Przystanek przystanekKoncowy)
        {
            foreach (var otrasa in obliczoneTrasy)
            {
                if (otrasa[0].Przystanek == przystanekStartowy &&
                    otrasa[otrasa.Count - 1].Przystanek == przystanekKoncowy)
                {
                    return(otrasa);
                }
            }

            return(null);
        }
コード例 #12
0
        public void WygenerujLosowePrzyplywyDlaPrzystanku(Przystanek przystanek, int iloscPrzyplywow, int iloscPasazerow)
        {
            for (int i = 0; i < iloscPrzyplywow; i++)
            {
                var przyplyw = new PrzyplywPasazerow(WygenerujLosowyCzas(), przystanek);

                for (int j = 0; j < iloscPasazerow; j++)
                {
                    przyplyw.DodajPasazera(GeneratorPasazerow.Instancja().WygenerujLosowegoPasazera(przyplyw.czasPrzyplywu));
                }

                przyplywyPasazerow.Add(przyplyw);
            }
        }
コード例 #13
0
        public PrymitywnyPasazerDijkstry(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy, Przystanek przystanekKoncowy, Graf.Graf <TimeSpan> graf)
            : base(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy)
        {
            this.graf     = graf;
            trasaPasazera = ZnajdzTrase(graf);
            graf.ZresetujGraf(TimeSpan.MaxValue);

            if (trasaPasazera.Count > 1)
            {
                przystanekPoczatkowy = trasaPasazera[0];
                przystanekKoncowy    = trasaPasazera[trasaPasazera.Count - 1];
                obecnyPrzystanek     = przystanekPoczatkowy;
            }

            UsunPierwszyElementTrasy(); // Usuwanie pierwszego elementu dla ulatwienia implementacji logiki porozy.
        }
コード例 #14
0
 void bus(object sender, OpenReadCompletedEventArgs e)
 {
     using (var reader = new StreamReader(e.Result))
     {
         List.Items.Clear();
         string   value    = reader.ReadToEnd();
         string[] response = Regex.Split(value, "<br>");
         int      i        = 0;
         while (i < response.Length - 1)
         {
             Przystanek p = new Przystanek()
             {
                 Name = " " + response[i], ImagePath = "/Assets/add.png", forgroundColor = "White", fontsize = "35"
             };
             List.Items.Add(p);
             i++;
         }
     }
 }
コード例 #15
0
        public Pasazer WygenerujLosowegoPasazera(TimeSpan czas)
        {
            Przystanek pPoczatkowy = siecPrzystankow.ToList()[rand.Next(siecPrzystankow.Count())];
            Przystanek pKoncowy;

            do
            {
                pKoncowy = siecPrzystankow.ToList()[rand.Next(siecPrzystankow.Count())];
            } while (pKoncowy == pPoczatkowy);

            var rng = rand.Next(100);

            if (rng < 33)
            {
                return(new PasazerDijkstry(rand.Next(2, 11), rand.Next(2, 11), pPoczatkowy, pKoncowy, siecPrzystankow, linie, czas));
            }
            if (rng < 66)
            {
                return(new PasazerWygodnicki(rand.Next(2, 11), rand.Next(2, 11), pPoczatkowy, pKoncowy, siecPrzystankow, linie, czas));
            }

            return(new PasazerKrotkodystansowy(rand.Next(2, 11), rand.Next(2, 11), pPoczatkowy, pKoncowy, siecPrzystankow, linie, czas));
        }
コード例 #16
0
        public PasazerKrotkodystansowy(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy,
                                       Przystanek przystanekKoncowy, Graf <ulong> graf, TimeSpan czasOstatniegoStworzeniaTrasy) : base(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy,
                                                                                                                                       czasOstatniegoStworzeniaTrasy)
        {
            this.graf = graf;
            var temp = CzyTrasaObliczona(przystanekPoczatkowy, przystanekKoncowy);

            if (temp == null)
            {
                trasaPasazera = ZnajdzTrase(graf);

                if (trasaPasazera != null)
                {
                    obliczoneTrasy.Add(trasaPasazera);
                }

                this.czasOstatniegoStworzeniaTrasy = czasOstatniegoStworzeniaTrasy;
            }
            else
            {
                trasaPasazera = new TrasaPasazera(temp, temp.CzasWaznosci);
            }
        }
コード例 #17
0
 public override void UsunPrzystanek(Przystanek przystanek)
 {
     siecPrzystankow.Remove(przystanek);
 }
コード例 #18
0
 public override void Wysiadz(Przystanek przystanek)
 {
     wybranaLinia     = null;
     obecnyPrzystanek = przystanek;
     OczekiwanaLinia(TimeSpan.Zero);
 }
コード例 #19
0
 public Pasazer WygenerujPasazera(Type typPasazera, int czasWsiadania, int czasWysiadania, Przystanek pPoczatkowy, Przystanek pKoncowy, TimeSpan czas)
 {
     if (typPasazera == typeof(PasazerDijkstry))
     {
         return(new PasazerDijkstry(czasWsiadania, czasWysiadania, pPoczatkowy, pKoncowy, siecPrzystankow, linie, czas));
     }
     else if (typPasazera == typeof(PasazerKrotkodystansowy))
     {
         return(new PasazerKrotkodystansowy(czasWsiadania, czasWysiadania, pPoczatkowy, pKoncowy, siecPrzystankow, linie, czas));
     }
     else if (typPasazera == typeof(PasazerWygodnicki))
     {
         return(new PasazerWygodnicki(czasWsiadania, czasWysiadania, pPoczatkowy, pKoncowy, siecPrzystankow, linie, czas));
     }
     else
     {
         throw new ArgumentException("Generator pasazerów nie obsługuje danego typu pasażera");
     }
 }
コード例 #20
0
 public Wierzcholek(Przystanek przystanek, IEnumerable <Krawedz <T> > krawedzie) : this(przystanek) {
     foreach (var krawedz in krawedzie)
     {
         this.krawedzie.Add(krawedz);
     }
 }
コード例 #21
0
 public PasazerLosowy(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy,
                      Przystanek przystanekKoncowy) : base(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy)
 {
 }
コード例 #22
0
 public Wierzcholek(Przystanek przystanek)
 {
     this.przystanek = przystanek;
     krawedzie       = new List <Krawedz <T> >();
     czyOdwiedzony   = false;
 }
コード例 #23
0
        public override void Wysiadz(Przystanek przystanek)
        {
            obecnyPrzystanek = przystanek;

            UsunPrzebytePrzystanki();
        }
コード例 #24
0
 public PasazerDijkstryBazowy(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy,
                              Przystanek przystanekKoncowy, TimeSpan czasOstatniegoStworzeniaTrasy)
     : base(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy)
 {
     this.czasOstatniegoStworzeniaTrasy = czasOstatniegoStworzeniaTrasy;
 }
コード例 #25
0
 public PasazerWygodnicki(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy,
                          Przystanek przystanekKoncowy, IEnumerable <Przystanek> siecPrzystankow, IEnumerable <Linia> linie, TimeSpan czasOstatniegoStworzeniaTrasy)
     : this(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy, new Graf <byte>(siecPrzystankow, linie, byte.MaxValue), czasOstatniegoStworzeniaTrasy)
 {
 }
コード例 #26
0
 public PasazerKrotkodystansowy(int czasWsiadania, int czasWysiadania, Przystanek przystanekPoczatkowy,
                                Przystanek przystanekKoncowy, IEnumerable <Przystanek> siecPrzystankow, IEnumerable <Linia> linie, TimeSpan czasOstatniegoStworzeniaTrasy)
     : this(czasWsiadania, czasWysiadania, przystanekPoczatkowy, przystanekKoncowy, new Graf <ulong>(siecPrzystankow, linie, ulong.MaxValue), czasOstatniegoStworzeniaTrasy)
 {
 }
コード例 #27
0
        private void List_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Przystanek rozp = new Przystanek();

            try
            {
                rozp = (Przystanek)List.SelectedItem;
            }
            catch
            {
                rozp.ImagePath = "asdsadasda";
            }
            if (List.SelectedIndex != -1)  //dzieki temu mozemy odznaczyc zaznaczony element umozliwia to zwijanie i rozwijanie tego samego elementu
            {
                if (rozp.ImagePath == "/Assets/add.png" || rozp.ImagePath == "/Assets/sub.png")
                {
                    check = false;
                    for (int i = 0; i < l.Count; i++)   //sprawdzenie czy wybrany element jest rozwiniety
                    {
                        if (l[i] == List.SelectedIndex) //jestli jest rozwiniety zwiniecie go
                        {
                            for (int k = 1; k <= ile[i]; k++)
                            {
                                List.Items.RemoveAt(l[i] + 1);
                            }
                            // List.Items.RemoveAt(l[i] + 1); //usuniecie z listy jednego elemenut
                            l.Remove(l[i]); // usuniecie z listy rozwinietych elementow
                            check = true;
                            for (int j = 0; j < l.Count; j++)
                            {
                                if (l[j] > List.SelectedIndex)
                                {
                                    l[j] = l[j] - ile[i]; // przesuniecie indeksów elementow
                                }
                            }
                            ile.Remove(ile[i]);
                            //element opodzialn za ddanie + na poczatku
                            int        index1 = List.SelectedIndex;
                            Przystanek widok2 = new Przystanek();
                            Przystanek widok3 = new Przystanek();
                            widok2      = (Przystanek)List.SelectedItem;
                            widok2      = (Przystanek)List.SelectedItem;
                            widok3.Name = "";
                            for (int k = 0; k < widok2.Name.Length; k++)
                            {
                                widok3.Name += widok2.Name[k];
                            }
                            widok2.ImagePath = "/Assets/add.png";
                            widok2.Name      = widok3.Name;
                            List.Items.Insert(index1 + 1, widok2);
                            List.Items.RemoveAt(index1);
                            // koniec elementu

                            List.SelectedIndex = -1;
                        }
                    }
                    if (check == false)
                    {
                        //nowe
                        Przystanek autobus = new Przystanek();
                        autobus = (Przystanek)List.SelectedItem;
                        string autobus1 = autobus.Name;
                        if (autobus.Name[1] == 'X')
                        {
                            autobus1 = autobus.Name[1].ToString();
                        }
                        else
                        {
                            autobus1 = autobus.Name[1].ToString() + autobus.Name[2].ToString() + autobus.Name[3].ToString();
                        }
                        //koniec
                        //element odpowiedzialny za wstawienie -
                        int        index  = List.SelectedIndex;
                        Przystanek widok  = (Przystanek)List.SelectedItem;
                        Przystanek widok1 = new Przystanek();
                        widok1.Name = "";
                        for (int i = 0; i < widok.Name.Length; i++)
                        {
                            widok1.Name += widok.Name[i];
                        }
                        widok.ImagePath = "/Assets/sub.png";
                        widok.Name      = widok1.Name;
                        //koniec elementu

                        //nowe
                        selected = List.SelectedIndex;
                        if (jakiprzystanek == "AMWOBLUZE")
                        {
                            var webClient = new WebClient();
                            webClient.OpenReadAsync(new Uri("http://hein.bluequeen.tk/select2.php?a='" + autobus1 + "'"));
                            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(rozklad);
                        }
                        if (jakiprzystanek == "AMWOKSYWIE")
                        {
                            var webClient = new WebClient();
                            webClient.OpenReadAsync(new Uri("http://hein.bluequeen.tk/select4.php?a='" + autobus1 + "'"));
                            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(rozklad);
                        }
                        if (jakiprzystanek == "OKSOBLUZE")
                        {
                            var webClient = new WebClient();
                            webClient.OpenReadAsync(new Uri("http://hein.bluequeen.tk/select6.php?a='" + autobus1 + "'"));
                            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(rozklad);
                        }
                        if (jakiprzystanek == "OKSOKSYWIE")
                        {
                            var webClient = new WebClient();
                            webClient.OpenReadAsync(new Uri("http://hein.bluequeen.tk/select8.php?a='" + autobus1 + "'"));
                            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(rozklad);
                        }
                        //koniec
                        l.Add(List.SelectedIndex);
                        for (int i = 0; i < l.Count; i++) //przesuniecie indeksow elementow
                        {
                            if (l[i] > List.SelectedIndex)
                            {
                                l[i] = l[i] + ile_dodano;
                            }
                        }
                        //dokonczenie elementu odpowiedzialnego za wsawienie -
                        List.Items.Insert(index + 1, widok);
                        List.Items.RemoveAt(index);
                        //koniec elmentu
                        List.SelectedIndex = -1;
                    }
                }
                else
                {
                    List.SelectedIndex = -1;
                }
            }
        }
コード例 #28
0
 public override void Wysiadz(Przystanek przystanek)
 {
     UstawElementyTrasyJakoPrzebyte(przystanek);
 }
コード例 #29
0
        public static SynchronicznyZarzadTransportu OdczytajPlik(string sciezkaPliku)
        {
            SynchronicznyZarzadTransportu zt;

            using (var sr = File.OpenText(sciezkaPliku))
            {
                zt = new SynchronicznyZarzadTransportu(sr.ReadLine());
                zt.DodajPrzystanek(sr.ReadLine().Split('|').Where(p => p != "").Select(s => Przystanek.OdczytajPlik(s, zt)));
                zt.DodajLinie(sr.ReadLine().Split('|').Where(l => l != "").Select(l => Linia.OdczytajPlik(l, zt)));
                zt.DodajFirme(sr.ReadLine().Split('|').Where(f => f != "").Select(f => FirmaLosowa.OdczytajPlik(f)));
            }

            return(zt);
        }
コード例 #30
0
 public override void DodajPrzystanek(Przystanek przystanek)
 {
     siecPrzystankow.Add(przystanek);
 }