/// <summary> /// Metoda pozwalajaca pobrać z konsoli wybrany przez uzytkownika sposób sortowania /// </summary> /// <returns name = "ascendingOrDescending"> zmienna z sposobem sortowania</returns> private static string ChoiceAscendingOrDescending() { int selectOption; string choice; string ascendingOrDescending; Console.WriteLine(); Console.WriteLine("Jak posortować raport: "); Console.WriteLine("1. Rosnąco"); Console.WriteLine("2. Malejąco"); Console.WriteLine("Aby wybrać sposób sortowania raportu wpisz odpowiadającą mu cyfre: "); while (true) { choice = Console.ReadLine(); try { selectOption = int.Parse(choice); switch (selectOption) { case 1: ascendingOrDescending = "Ascending"; goto end; case 2: ascendingOrDescending = "Descending"; goto end; default: RaportView.ErrorInterfaceInformation(choice); break; } } catch (Exception) { RaportView.ErrorInterfaceInformation(choice); } } end: return(ascendingOrDescending); }
/// <summary> /// Metoda pozwalajaca pobrać z konsoli wybrany przez uzytkownika sposób sortowania /// </summary> /// <returns name = "sotringMethod"> zmienna z sposobem sortowania</returns> private static string SortingMethodGroupByName() { int selectOption; string choice; string sortingMethod; Console.WriteLine(); Console.WriteLine("Jak posortować raport: "); Console.WriteLine("1. Po nazwach produktów"); Console.WriteLine("2. Po ilości wystąpień"); Console.WriteLine("Aby wybrać sposób sortowania raportu wpisz odpowiadającą mu cyfre: "); while (true) { choice = Console.ReadLine(); try { selectOption = int.Parse(choice); switch (selectOption) { case 1: sortingMethod = "Key"; goto end; case 2: sortingMethod = "Count"; goto end; default: RaportView.ErrorInterfaceInformation(choice); break; } } catch (Exception) { RaportView.ErrorInterfaceInformation(choice); } } end: return(sortingMethod); }
/// <summary> /// Metoda odczytująca wartości double podane przez użytkownika /// </summary> /// <returns name = "value">Wartość double</returns> private static double LoadDoubleValue() { double value; string loadValue; while (true) { loadValue = Console.ReadLine(); try { value = double.Parse(loadValue); goto end; } catch (Exception) { RaportView.ErrorInterfaceInformation(loadValue); } } end: return(value); }
/// <summary> /// Metoda pozwalajaca pobrać z konsoli wybrany przez uzytkownika sposób sortowania /// </summary> /// <returns name = "sotringMethod"> zmienna z sposobem sortowania</returns> private static string ChoseSortingMethod() { int selectOption; string choice; string sortingMethod; Console.WriteLine(); Console.WriteLine("Jak posortować raport: "); Console.WriteLine("1. Po zamówieniach"); Console.WriteLine("2. Po clientId"); Console.WriteLine("3. Po requestId"); Console.WriteLine("4. Po name"); Console.WriteLine("5. Po quantity"); Console.WriteLine("6. Po price"); Console.WriteLine("Aby wybrać sposób sortowania raportu wpisz odpowiadającą mu cyfre: "); while (true) { choice = Console.ReadLine(); try { selectOption = int.Parse(choice); switch (selectOption) { case 1: sortingMethod = "Order"; goto end; case 2: sortingMethod = "ClientId"; goto end; case 3: sortingMethod = "RequstId"; goto end; case 4: sortingMethod = "Name"; goto end; case 5: sortingMethod = "Quantity"; goto end; case 6: sortingMethod = "Price"; goto end; default: RaportView.ErrorInterfaceInformation(choice); break; } } catch (Exception) { RaportView.ErrorInterfaceInformation(choice); } } end: return(sortingMethod); }
static void Main(string[] args) { string choice; int selectOption; string filePath; string raport; string clientId; string sortingMethod; string ascendingOrDescending; double min, max; List <String> fileList = new List <string>(); Console.WriteLine("*********PROGRAM DO OBSŁUGI ZAMÓWIEŃ********"); do { Console.WriteLine("Podaj ścieżkę do pliku z listą plików z zamówieniami: "); filePath = @Console.ReadLine(); fileList = ReadData.ReadFile(filePath); } while (fileList.Count() == 0); ReadListFiles(fileList); raportInterface: RaportsUserInterfaceView(); while (true) { choice = Console.ReadLine(); try { selectOption = int.Parse(choice); switch (selectOption) { case 1: raport = "Łączna liczba zamówień: " + NumbersOfOrders(Order.orders); RaportView.FileOrConsole(raport); goto raportInterface; case 2: clientId = LoadClientId(); raport = "Łączna liczba zamówień dla klienta o id '" + clientId + "': " + ClientNumbersOfOrders(Order.orders, clientId); RaportView.FileOrConsole(raport); goto raportInterface; case 3: raport = "Łączna kwota zamówień: " + TotalPrice(Order.orders); RaportView.FileOrConsole(raport); goto raportInterface; case 4: clientId = LoadClientId(); raport = "Łączna kwota zamówień dla klienta o id'" + clientId + "': " + ClientTotalPrice(Order.orders, clientId); RaportView.FileOrConsole(raport); goto raportInterface; case 5: sortingMethod = ChoseSortingMethod(); if (sortingMethod == "Order") { raport = "Wszystkie zamówienia: " + Environment.NewLine + AllOrders(Order.orders); } else { ascendingOrDescending = ChoiceAscendingOrDescending(); raport = "Wszystkie zamówienia: " + Environment.NewLine + AllOrders(Order.orders, sortingMethod, ascendingOrDescending); } RaportView.FileOrConsole(raport); goto raportInterface; case 6: clientId = LoadClientId(); sortingMethod = ChoseSortingMethod(); if (sortingMethod == "Order") { raport = "Wszystkie zamówienia dla klienta o id'" + clientId + "': " + Environment.NewLine + ClientAllOrders(Order.orders, clientId); } else { ascendingOrDescending = ChoiceAscendingOrDescending(); raport = "Wszystkie zamówienia dla klienta o id'" + clientId + "': " + Environment.NewLine + ClientAllOrders(Order.orders, clientId, sortingMethod, ascendingOrDescending); } RaportView.FileOrConsole(raport); goto raportInterface; case 7: raport = "Średnia wartość wszystkich zamówień: " + AverageOrderValue(Order.orders); RaportView.FileOrConsole(raport); goto raportInterface; case 8: clientId = LoadClientId(); raport = "Średnia wartość wszystkich zamówień dla klienta o id'" + clientId + "': " + ClientAverageOrderValue(Order.orders, clientId); RaportView.FileOrConsole(raport); goto raportInterface; case 9: sortingMethod = SortingMethodGroupByName(); ascendingOrDescending = ChoiceAscendingOrDescending(); raport = "Ilość zamówień pogrupowane po nazwie produktów: " + Environment.NewLine + GroupNumberOfOrders(Order.orders, sortingMethod, ascendingOrDescending); RaportView.FileOrConsole(raport); goto raportInterface; case 10: clientId = LoadClientId(); sortingMethod = SortingMethodGroupByName(); ascendingOrDescending = ChoiceAscendingOrDescending(); raport = "Ilość zamówień pogrupowane po nazwie produktów dla klienta o id'" + clientId + "': " + Environment.NewLine + ClientGroupNumberOfOrders(Order.orders, clientId, sortingMethod, ascendingOrDescending); RaportView.FileOrConsole(raport); goto raportInterface; case 11: Console.WriteLine("Podaj dolną granice przedziału: "); min = LoadDoubleValue(); Console.WriteLine("Podaj górną granice przedziału: "); max = LoadDoubleValue(); raport = "Zamówienia w przedziale cenowym(" + min + "-" + max + "): " + Environment.NewLine + OrdersPriceRange(Order.orders, min, max); RaportView.FileOrConsole(raport); goto raportInterface; case 12: goto end; default: RaportView.ErrorInterfaceInformation(choice); break; } } catch (Exception) { RaportView.ErrorInterfaceInformation(choice); } } end :; }
/// <summary> /// Metoda tworzaca plik /// </summary> /// <param name="raport">raport do wyświtlenia</param> /// <param name="pathDirectoryRaports">ścieżka do folderu</param> public static void CreateFileWithRaport(string pathDirectoryRaports, string raport) { string choice; int selectOption; string pathRaportFile; string fileName; FileInfo file = null; StreamWriter writer = null; Console.WriteLine(); Console.WriteLine("Podaj nazwe pliku bez rozszerzenia: "); fileName = Console.ReadLine() + ".csv"; pathRaportFile = System.IO.Path.Combine(pathDirectoryRaports, fileName); if (System.IO.File.Exists(pathRaportFile)) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Plik już istnieje!"); Console.ResetColor(); Console.WriteLine(); Console.WriteLine("1.Nadpisz plik."); Console.WriteLine("2.Wprowadź inną nazwę."); Console.WriteLine("Aby wybrać opcej wpisz odpowiadającą mu cyfre: "); while (true) { choice = Console.ReadLine(); try { selectOption = int.Parse(choice); if (selectOption == 1) { System.IO.File.Delete(pathRaportFile); file = new FileInfo(pathRaportFile); break; } else if (selectOption == 2) { CreateFileWithRaport(pathDirectoryRaports, raport); goto next; } else { RaportView.ErrorInterfaceInformation(choice); } } catch (Exception) { RaportView.ErrorInterfaceInformation(choice); } } } else { file = new FileInfo(pathRaportFile); } try { writer = file.AppendText(); writer.WriteLine("*******RAPORT******"); writer.Write(raport); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Plik został zapisany" + Environment.NewLine + "Miejsce zapisu: " + pathRaportFile); Console.ResetColor(); } catch (Exception) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Błąd w zapisie"); Console.ResetColor(); Console.WriteLine(); } finally { if (writer != null) { writer.Close(); } } next :; }