Example #1
0
        public void RequestAverageValue()
        {
            double expectedValue = 150;
            double actualValue   = ReportsGenerator.TotalValueOfRequests(_requestList) / ReportsGenerator.TotalNumberOfRequests(_requestList);

            Assert.Equal(expectedValue, actualValue);
        }
Example #2
0
        public void RequestAverageValueClientId()
        {
            double expectedValue = 200;
            double actualValue   = ReportsGenerator.TotalValueOfRequests(_requestList, "1") / ReportsGenerator.TotalNumberOfRequests(_requestList, "1");

            Assert.Equal(expectedValue, actualValue);
        }
Example #3
0
        public void TotalValueOfRequestsClientId()
        {
            double expectedValue = 100;
            double actualValue   = ReportsGenerator.TotalValueOfRequests(_requestList, "2");

            Assert.Equal(expectedValue, actualValue);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Podaj pełną ścieżkę do katalogu z plikami wejściowymi:");

            string path = Console.ReadLine();

            List<Request> requests = DataLoader.PopulateDbWithData(path);

            bool exitFlag = false;

            while (!exitFlag)
            {
                MainMenu();
                string userChoice = Console.ReadLine();
                string clientId;

                switch (userChoice)
                {
                    case "a":
                        Console.WriteLine($"\nCałkowita liczba zamówień: {ReportsGenerator.TotalNumberOfRequests(requests)}");
                        break;
                    case "b":
                        Console.Write("\nPodaj ID klienta: ");
                        clientId = Console.ReadLine();
                        Console.WriteLine($"\nCałkowita liczba zamówień dla klienta o ID = {clientId}: {ReportsGenerator.TotalNumberOfRequests(requests, clientId)}");
                        break;
                    case "c":
                        Console.WriteLine($"\nŁączna kwota zamówień: {ReportsGenerator.TotalValueOfRequests(requests)}");
                        break;
                    case "d":
                        Console.Write("\nPodaj ID klienta: ");
                        clientId = Console.ReadLine();
                        Console.WriteLine($"\nŁączna kwota zamówień dla klienta o ID = {clientId}: {ReportsGenerator.TotalValueOfRequests(requests, clientId)}");
                        break;
                    case "e":
                        Console.WriteLine("\nLista wszystkich zamówień:\n");
                        ReportsGenerator.ListOfAllRequests(requests);
                        Console.Write("Chcesz posortować raport? (t/n): ");
                        string userSort = Console.ReadLine();
                        SortedReport_E_F(requests, userSort, false);
                        break;
                    case "f":
                        Console.Write("\nPodaj ID klienta: ");
                        clientId = Console.ReadLine();
                        if (requests.Count(x => x.ClientId == clientId) == 0)
                        {
                            Console.WriteLine("\nBrak klienta o wskazanym ID...");
                            break;
                        }
                        Console.WriteLine($"\nLista wszystkich zamówień dla klienta o ID = {clientId}:\n");
                        ReportsGenerator.ListOfAllRequests(requests, clientId);
                        Console.Write("Chcesz posortować raport? (t/n): ");
                        userSort = Console.ReadLine();
                        SortedReport_E_F(requests, userSort, true, clientId);
                        break;
                    case "g":
                        double averRequest = ReportsGenerator.TotalValueOfRequests(requests) / ReportsGenerator.TotalNumberOfRequests(requests);
                        Console.WriteLine($"\nŚrednia wartość zamówienia: {averRequest.ToString("F", CultureInfo.InvariantCulture)}");
                        break;
                    case "h":
                        Console.Write("\nPodaj ID klienta: ");
                        clientId = Console.ReadLine();
                        double averRequestClientId = ReportsGenerator.TotalValueOfRequests(requests, clientId) / ReportsGenerator.TotalNumberOfRequests(requests, clientId);
                        if (double.IsNaN(averRequestClientId))
                        {
                            Console.WriteLine("\nBrak klienta o wskazanym ID...");
                            break;
                        }
                        Console.WriteLine($"\nŚrednia wartość zamówienia dla klienta o ID = {clientId}: " +
                                          $"{averRequestClientId.ToString("F", CultureInfo.InvariantCulture)}");
                        break;
                    case "i":
                        Console.WriteLine("\nIlość zamówień pogrupowanych po nazwie:\n");
                        ReportsGenerator.RequestsAmountGroupedByName(requests);
                        Console.Write("Chcesz posortować raport? (t/n): ");
                        userSort = Console.ReadLine();
                        SortedReport_I_J(requests, userSort, false);
                        break;
                    case "j":
                        Console.Write("\nPodaj ID klienta: ");
                        clientId = Console.ReadLine();
                        if (requests.Count(x => x.ClientId == clientId) == 0)
                        {
                            Console.WriteLine("\nBrak klienta o wskazanym ID...");
                            break;
                        }
                        Console.WriteLine($"\nIlość zamówień pogrupowanych po nazwie dla klienta dla klienta o ID = {clientId}:\n");
                        ReportsGenerator.RequestsAmountGroupedByName(requests, clientId);
                        Console.Write("Chcesz posortować raport? (t/n): ");
                        userSort = Console.ReadLine();
                        SortedReport_I_J(requests, userSort, true, clientId);
                        break;
                    case "k":
                        double priceFrom;
                        double priceTo;
                        Console.Write("\nPodaj dolny przedział cen: ");
                        if (Double.TryParse(Console.ReadLine(), out double price1))
                            priceFrom = price1;
                        else
                        {
                            Console.WriteLine("\nWprowadzono nieprawidłowy znak. Może uda się następnym razem... ;)");
                            break;
                        }
                        Console.Write("Podaj górny przedział cen: ");
                        if (Double.TryParse(Console.ReadLine(), out double price2))
                        {
                            priceTo = price2;
                            if (priceTo < priceFrom)
                            {
                                Console.WriteLine("\nPodano złą cenę. Górny przedział cen nie może być niższy od dolnego...");
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\nWprowadzono nieprawidłowy znak. Może uda się następnym razem... ;)");
                            break;
                        }
                        if (requests.Count(c => c.Price >= priceFrom && c.Price <= priceTo) == 0)
                        {
                            Console.WriteLine("\nBrak zamówień w podanym przedziale cenowym...");
                            break;
                        }
                        Console.WriteLine($"\nZamówienia w przedziale cenowym od {priceFrom} do {priceTo}:\n");
                        ReportsGenerator.RequestsInPriceRange(requests, priceFrom, priceTo);
                        Console.Write("Chcesz posortować raport? (t/n): ");
                        userSort = Console.ReadLine();
                        SortedReport_K(requests, userSort, priceFrom, priceTo);
                        break;
                    case "z":
                        exitFlag = true;
                        break;
                    default:
                        Console.WriteLine("\nWprowadzono nieprawidłowy znak. Może uda się następnym razem... ;)");
                        break;
                }
            }
        }