예제 #1
0
        private void CheckBoxClicked(object sender, RoutedEventArgs e)
        {
            Tram.IsChecked = Bus.IsChecked = Metro.IsChecked = Rail.IsChecked = Other.IsChecked = false;
            CheckBox checkBoxHandler = sender as CheckBox;

            checkBoxHandler.IsChecked = true;
            string selectedTypeOfRouteName = checkBoxHandler.Name;

            if (checkBoxHandler.Name == "Other")
            {
                selectedTypeOfRouteName = OtherTypes.SelectedValue.ToString();
            }
            routesSigns.TryGetValue(selectedTypeOfRouteName, out typeOfRoute);
            isTypeServiceClicked = true;
            if (typeOfRoute == null)
            {
                Tram.IsChecked = Bus.IsChecked = Metro.IsChecked = Rail.IsChecked = Other.IsChecked = false;
                Interfejs.Message successMessage = new Interfejs.Message(this, "Problem", "Błąd z rozpoznaniem rodzaju transportu");
                successMessage.Owner = this;
                successMessage.Show();
                successMessage.Topmost = true;
                GenerateGTFS.IsEnabled = true;
                isTypeServiceClicked   = false;
            }
        }
예제 #2
0
        private void GenerateServicesList_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            openFileDialog.Title            = "Wybierz plik z którego mam pobrać typy serwisów";
            openFileDialog.Filter           = "Pliki Excel|*.xlsx";
            openFileDialog.FilterIndex      = 1;
            openFileDialog.RestoreDirectory = true;
            Nullable <bool> dialogResult = openFileDialog.ShowDialog();

            if (dialogResult == true)
            {
                try
                {
                    Program.MakeServicesListFile(openFileDialog.FileName);
                    Interfejs.Message successMessage = new Interfejs.Message(this, "Gratuluje", "Plik z listą typów serwisów został utworzony");
                    successMessage.Owner = this;
                    successMessage.Show();
                    successMessage.Topmost = true;
                }
                catch (Exception ex)
                {
                    if (ex.GetType() != typeof(GhostCellsException))
                    {
                        Interfejs.Message successMessage = new Interfejs.Message(this, "Błąd #04", "Najprawopodobniej wybrany plik nie jest zgodny z wymaganą strukturą");
                        successMessage.Owner = this;
                        successMessage.Show();
                        successMessage.Topmost = true;
                    }
                }
            }
        }
예제 #3
0
        private void ChooseTimetableFile_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            openFileDialog.Filter           = "Pliki Excel|*.xlsx";
            openFileDialog.FilterIndex      = 1;
            openFileDialog.RestoreDirectory = true;
            Nullable <bool> dialogResult = openFileDialog.ShowDialog();

            if (dialogResult == true)
            {
                TimetablePath.Text = openFileDialog.FileName;
                timetableFilePath  = openFileDialog.FileName;
            }
            if (IsStopsFileAdded() && IsTimetableFileAdded())
            {
                if (Program.TestFormulasInTimeTable())
                {
                    try
                    {
                        bool AreStopsMatched = Program.CheckStopsMatching(actualWindow);
                        ShowStopsMatching(AreStopsMatched);
                        if (AreStopsMatched)
                        {
                            ServicesListBox.Items.Clear();
                            ShowServicesMatching(Program.CheckServicesMatching(actualWindow));//////////////////////////////////////////////////////////////////////////
                            ShowServices();
                        }
                    }
                    catch
                    {
                        Interfejs.Message successMessage = new Interfejs.Message(this, "Błąd", "Sprawdź zgodność wybranych plików z wymaganą strukturą");
                        successMessage.Owner = this;
                        successMessage.Show();
                        successMessage.Topmost = true;
                        ClearUI();
                    }
                }
                //else
                //{
                //    Interfejs.Message successMessage = new Interfejs.Message(this, "Uwaga", "Wybrany rozkład zawiera komórki które mają błędne formatowanie. Zmień formuły zawierające czasy na typ 'GG:MM'");
                //    successMessage.Owner = this;
                //    successMessage.Show();
                //    successMessage.Topmost = true;
                //    ClearUI(false);
                //}
            }
        }
예제 #4
0
 private void StopsMatchingFlag_Click(object sender, RoutedEventArgs e)
 {
     if (StopsMatchingFlag.Background == Brushes.Red)
     {
         Interfejs.Message successMessage = new Interfejs.Message(this, "Ostrzeżenie", "Pobrałem przystanki z pliku, oraz wszystkie z arkusza, niestety nie ma między nimi pełnej zgodności. Za chwilę urchomi się plik z listą niesparowanych przystanków. Sprawdz też zgodność z schematem");
         successMessage.Owner = this;
         successMessage.Show();
         successMessage.Topmost = true;
         Task.Delay(3000);
         System.Diagnostics.Process.Start("stops_NoMatch.txt"); // mb change because of autoinrement
     }
     else
     {
         Interfejs.Message successMessage = new Interfejs.Message(this, "Poprawnie", "Przystanki w pełni się pokrywają, możesz kontynuować :)");
         successMessage.Owner = this;
         successMessage.Show();
         successMessage.Topmost = true;
     }
 }
예제 #5
0
 private void AddNewService_Click(object sender, RoutedEventArgs e)
 {
     if (!IsServicesDictioranyContainingKey(ServiceSymbol.Text) && !IsServicesDictioranyContainingValue(ServiceFullName.Text))
     {
         servicesDictionary.Add(ServiceSymbol.Text, ServiceFullName.Text);
         ServicesListBox.Items.Add(ServiceSymbol.Text + " = " + ServiceFullName.Text);
         if (noMatchServices.Contains(ServiceSymbol.Text))
         {
             noMatchServices.Remove(ServiceSymbol.Text);
             NewCalendar newCalendar = new NewCalendar(actualWindow, ServiceFullName.Text, noMatchServices.Count);
             newCalendar.Owner = this;
             newCalendar.Show();
             newCalendar.Topmost = true;
         }
     }
     else
     {
         Interfejs.Message successMessage = new Interfejs.Message(this, "Potwórzenie", "Taki symbol, lub pełna nazwa juz została wprowadzona");
         successMessage.Owner = this;
         successMessage.Show();
         successMessage.Topmost = true;
     }
 }
예제 #6
0
 public void ShowServicesMatching(bool IsAllMatched)
 {
     if (IsAllMatched)
     {
         // pozwala generować GTFSa
         Interfejs.Message successMessage = new Interfejs.Message(this, "Informacja", "Wszystko się pokrywa, możesz generować pliki GTFS");
         successMessage.Owner = this;
         successMessage.Show();
         successMessage.Topmost  = true;
         GenerateGTFS.IsEnabled  = true;
         AddNewService.IsEnabled = false;
     }
     else
     {
         GenerateGTFS.IsEnabled  = false;
         AddNewService.IsEnabled = true;
         Interfejs.Message successMessage = new Interfejs.Message(this, "Niespójność", "Rodzaje kursów pobranych z poszczególnych arkuszów z rozkładu nie pokrywają się z tymi z arkusza 'Services'. Za chwilę uruchomi się plik z listą nieoznaczonych rodzajów kursów. Wprowadź ręcznie");
         successMessage.Owner = this;
         successMessage.Show();
         successMessage.Topmost = true;
         Task.Delay(3000);
         System.Diagnostics.Process.Start("services_NoMatch.txt"); // mb change because of autoinrement
     }
 }
예제 #7
0
        private async void GenerateGTFS_Click(object sender, RoutedEventArgs e)
        {
            Agency agency = new Agency(currentDirectory + @"\GTFS");

            Program.MakeAgencyTXT();
            Stop_time stopTime = new Stop_time(currentDirectory + @"\GTFS");
            Trip      trip     = new Trip(currentDirectory + @"\GTFS");



            WaitingWindow waitingWindow = new WaitingWindow(actualWindow);

            waitingWindow.Owner = this;
            waitingWindow.Show();
            bool response = await Program.MakeAsyncTripsnStopTimes();

            BlockMainWindow(false);
            waitingWindow.Close();

            if (response)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter           = "Pliki ZIP|*.zip";
                saveFileDialog.FilterIndex      = 1;
                saveFileDialog.RestoreDirectory = true;
                saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                string year  = DateTime.Now.Date.ToString().Remove(5);
                string month = DateTime.Now.Date.ToString().Remove(8).Remove(0, 5);
                string day   = DateTime.Now.Date.ToString().Remove(10).Remove(0, 8);
                saveFileDialog.FileName   = CityName.Text.ToLower().Replace(' ', '-') + "-" + year + month + day + ".zip";
                saveFileDialog.DefaultExt = "zip";
                Nullable <bool> dialogResult = saveFileDialog.ShowDialog();
                if (dialogResult == true)
                {
                    try
                    {
                        if (File.Exists(saveFileDialog.FileName))
                        {
                            File.Delete(saveFileDialog.FileName);
                        }
                        ZipFile.CreateFromDirectory(currentDirectory + @"\GTFS", (saveFileDialog.FileName));
                        Interfejs.Message successMessage = new Interfejs.Message(this, "Gratuluję", "Udało się pomyślnie wytworzyć pliki GTFS oraz spakować je do ZIP-a.");
                        successMessage.Owner = this;
                        successMessage.Show();
                        successMessage.Topmost = true;
                        ClearUI();

                        string path = currentDirectory + @"\validation.bat";
                        if (File.Exists(path))
                        {
                            File.Delete(path);                    //del existing one
                        }
                        using (FileStream fs = File.Create(path)) // now create new
                        {
                            Byte[] text = new UTF8Encoding(true).GetBytes(@"start """" /B fv.exe """ + saveFileDialog.FileName + @"""");
                            fs.Write(text, 0, text.Length);
                        }
                        System.Diagnostics.Process.Start("validation.bat");
                    }
                    catch
                    {
                        Interfejs.Message successMessage = new Interfejs.Message(this, "Błąd #02", "Nie udało się wytworzyć plików GTFS. Sprawdź zgodność Twoich plików z wymaganymi schematami. Zamknij pliki robocze z rozkładami i przystankami.");
                        successMessage.Owner = this;
                        successMessage.Show();
                        successMessage.Topmost = true;
                        ClearUI(false);
                    }
                }
            }
            else
            {
                Interfejs.Message successMessage = new Interfejs.Message(this, "Błąd #01", "Nie udało się wytworzyć plików GTFS. Sprawdź zgodność Twoich plików z wymaganymi schematami. Zamknij pliki robocze z rozkładami i przystankami.");
                successMessage.Owner = this;
                successMessage.Show();
                successMessage.Topmost = true;
                ClearUI(false);
            }
        }