Example #1
0
        public static void AddOrder()
        {
            try
            {
                int      id       = Ask.ForMedicineId("Podaj ID leku do sprzedaży: ");
                DateTime saleDate = Ask.ForDate("Podaj datę sprzedaży bądź pozostaw puste aby uzupełnić bieżącą datą: ", true, DateTime.Now);
                decimal  amount   = Ask.ForDecimal("Podaj ilość sprzedawanych sztuk: ");

                using (var medicine = new Medicine())
                {
                    medicine.Reload(id);

                    while (medicine.Amount < amount)
                    {
                        ConsoleEx.WriteLine(ConsoleColor.Red, "Wprowadzona ilość sztuk przekracza ilość w magazynie. ");
                        if (Ask.ForBool($"Czy ustawić ilość na maksymalną dostepną ilość {medicine.Amount} t/n: "))
                        {
                            amount = medicine.Amount;
                        }
                        else
                        {
                            amount = Ask.ForDecimal("Podaj nową ilość sprzedawanych sztuk: ");
                        }
                    }

                    int?         prescriptioId = null;
                    Prescription prescription  = null;

                    if (medicine.WithPrescription)
                    {
                        string customerName       = Ask.ForString("Podaj imię i nazwisko: ");
                        string pesel              = Ask.ForPesel("Podaje PESEL: ");
                        string prescriptionNumber = Ask.ForString("Podaj numer recepty: ");

                        prescription = new Prescription(customerName, pesel, prescriptionNumber);
                    }

                    if (Ask.ForBool($"Czy zapisać wprowadzone zamówienie t/n: "))
                    {
                        medicine.Amount -= amount;
                        medicine.Save();

                        if (medicine.WithPrescription && prescription != null)
                        {
                            using (prescription)
                            {
                                prescription.Save();
                                prescriptioId = prescription.ID;
                            }
                        }

                        using (var order = new Order(prescriptioId, id, saleDate, amount))
                        {
                            order.Save();
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ConsoleEx.WriteLine(ConsoleColor.Red, "Wystąpił błąd. ERROR: {0}", e.Message);
            }
        }
Example #2
0
        public static void SearchForMedicine()
        {
            //To do:
            //0. działa, ale do zmiany,
            //1. dodać zależność między typem a operatorem,
            //2. dodać dynamiczne generowanie poszczególnych list wyborów,
            //3. dodać mozliwość wyboru filtrowania po więcej niż jednym polu

            Console.WriteLine("Pola dostępne dla leków: ");
            Console.WriteLine(" 1. ID");
            Console.WriteLine(" 2. Nazwa");
            Console.WriteLine(" 3. Producent");
            Console.WriteLine(" 4. Cena");
            Console.WriteLine(" 5. Ilosc");
            Console.WriteLine(" 6. Na receptę");
            int fieldNum = Ask.ForIntListItem("Wybierz pole: ", 1, 6);

            Console.WriteLine();

            Console.WriteLine("Operatory dostępne podczas wyszukiwania: ");
            Console.WriteLine(" 1. Równy");
            Console.WriteLine(" 2. Różny");
            Console.WriteLine(" 3. Zawiera");
            Console.WriteLine(" 4. Zakres/Pomiędzy");
            Console.WriteLine(" 5. Większy");
            Console.WriteLine(" 6. Większy równy");
            Console.WriteLine(" 7. Mniejszy");
            Console.WriteLine(" 8. Mniejszy równy");
            int conditionNum = Ask.ForIntListItem("Wybierz operator: ", 1, 8);

            string selectedField    = "";
            string selectedOperator = "";
            object givenValue;
            object givenValue2;
            var    sqlParam = new List <SqlParameter>();


            switch (fieldNum)
            {
            default:
                selectedField = "ID";
                if (conditionNum == 4)
                {
                    givenValue  = Ask.ForInt("Podaj wartość od: ");
                    givenValue2 = Ask.ForInt("Podaj wartość do: ");

                    sqlParam.Add(new SqlParameter()
                    {
                        ParameterName = "@" + selectedField.ToLower() + "To",
                        Value         = givenValue2
                    });

                    break;
                }
                givenValue = Ask.ForInt("Podaj wartość: ");
                break;

            case 2:
                selectedField = "Name";
                if (conditionNum == 4)
                {
                    givenValue  = Ask.ForString("Podaj wartość od: ");
                    givenValue2 = Ask.ForString("Podaj wartość do: ");

                    sqlParam.Add(new SqlParameter()
                    {
                        ParameterName = "@" + selectedField.ToLower() + "To",
                        Value         = givenValue2
                    });
                    break;
                }
                givenValue = Ask.ForString("Podaj wartość: ");
                break;

            case 3:
                selectedField = "Manufacturer";
                if (conditionNum == 4)
                {
                    givenValue  = Ask.ForString("Podaj wartość od: ");
                    givenValue2 = Ask.ForString("Podaj wartość do: ");

                    sqlParam.Add(new SqlParameter()
                    {
                        ParameterName = "@" + selectedField.ToLower() + "To",
                        Value         = givenValue2
                    });
                    break;
                }
                givenValue = Ask.ForString("Podaj wartość: ");
                break;

            case 4:
                selectedField = "Price";
                if (conditionNum == 4)
                {
                    givenValue  = Ask.ForDecimal("Podaj wartość od: ");
                    givenValue2 = Ask.ForDecimal("Podaj wartość do: ");

                    sqlParam.Add(new SqlParameter()
                    {
                        ParameterName = "@" + selectedField.ToLower() + "To",
                        Value         = givenValue2
                    });
                    break;
                }
                givenValue = Ask.ForDecimal("Podaj wartość: ");
                break;

            case 5:
                selectedField = "Amount";
                if (conditionNum == 4)
                {
                    givenValue  = Ask.ForString("Podaj wartość od: ");
                    givenValue2 = Ask.ForString("Podaj wartość do: ");

                    sqlParam.Add(new SqlParameter()
                    {
                        ParameterName = "@" + selectedField.ToLower() + "To",
                        Value         = givenValue2
                    });
                    break;
                }
                givenValue = Ask.ForString("Podaj wartość: ");
                break;

            case 6:
                selectedField = "WithPrescription";
                if (conditionNum == 4)
                {
                    givenValue  = Ask.ForBool("Podaj wartość od: ");
                    givenValue2 = Ask.ForBool("Podaj wartość do: ");

                    sqlParam.Add(new SqlParameter()
                    {
                        ParameterName = "@" + selectedField.ToLower() + "To",
                        Value         = givenValue2
                    });
                    break;
                }
                givenValue = Ask.ForBool("Podaj wartość: ");
                break;
            }

            switch (conditionNum)
            {
            default:
                selectedOperator = " = #field#";
                break;

            case 2:
                selectedOperator = " <> #field#";
                break;

            case 3:
                selectedOperator = " like '%'+#field#+'%'";
                break;

            case 4:
                selectedOperator = " between #field# and #field2#";
                break;

            case 5:
                selectedOperator = " > #field#";
                break;

            case 6:
                selectedOperator = " >= #field#";
                break;

            case 7:
                selectedOperator = " < #field#";
                break;

            case 8:
                selectedOperator = " <= #field#";
                break;
            }

            sqlParam.Add(new SqlParameter()
            {
                ParameterName = "@" + selectedField.ToLower(),
                Value         = givenValue
            });

            string whereClausule = " where " + selectedField + selectedOperator.Replace("#field#", "@" + selectedField.ToLower()).Replace("#field2#", "@" + selectedField.ToLower() + "To");

            DisplayMedicineList(Medicine.Search(whereClausule, sqlParam.ToArray()));
        }
Example #3
0
        static void Main(string[] args)
        {
            while (true)
            {
                ConsoleEx.WriteLine(Console.ForegroundColor, "I.  Zarządzania listą leków: ");
                ConsoleEx.Write(Console.ForegroundColor, "      1. Dodanie leku - ".PadRight(40)); ConsoleEx.WriteLine(ConsoleColor.Green, "add");
                ConsoleEx.Write(Console.ForegroundColor, "      2. Edycja leku - ".PadRight(40)); ConsoleEx.WriteLine(ConsoleColor.Green, "mod");
                ConsoleEx.Write(Console.ForegroundColor, "      3. Usuwanie leku - ".PadRight(40)); ConsoleEx.WriteLine(ConsoleColor.Green, "del");
                ConsoleEx.Write(Console.ForegroundColor, "      4. Wyświetlenie listy leków - ".PadRight(40)); ConsoleEx.WriteLine(ConsoleColor.Green, "show");
                ConsoleEx.Write(Console.ForegroundColor, "      5. Wyszukiwanie leków - ".PadRight(40)); ConsoleEx.WriteLine(ConsoleColor.Green, "find");
                ConsoleEx.WriteLine(Console.ForegroundColor, "II.  Sprzedaż leków: ");
                ConsoleEx.Write(Console.ForegroundColor, "      1. Dodanie zamówienia - ".PadRight(40)); ConsoleEx.WriteLine(ConsoleColor.Green, "ord");
                ConsoleEx.WriteLine(Console.ForegroundColor, "\nWyjście - exit ");
                Console.WriteLine();

                string input = Ask.ForString("Wpisz polecenie: ").ToLower();

                if (input == "exit")
                {
                    break;
                }

                if (input == "add")
                {
                    DisplayHeader(ConsoleColor.Green, "DODWANIE LEKU");
                    bool addNext;
                    do
                    {
                        ProgramLogic.AddMedicine();

                        Console.WriteLine();
                        addNext = Ask.ForBool("Dodać kolejny lek t/n: ");
                        Console.WriteLine();
                    } while (addNext);
                }

                if (input == "mod")
                {
                    DisplayHeader(ConsoleColor.Green, "MODYFIKACJA LEKU");
                    bool modNext;
                    do
                    {
                        ProgramLogic.ModifyMedicine();

                        Console.WriteLine();
                        modNext = Ask.ForBool("Czy zmieniany będzie kolejny lek t/n: ");
                        Console.WriteLine();
                    } while (modNext);
                }

                if (input == "show")
                {
                    DisplayHeader(ConsoleColor.Green, "LISTA WSZYSTKICH LEKÓW");

                    ProgramLogic.DisplayMedicineList(Medicine.LoadAll());
                    Console.WriteLine();
                }

                if (input == "del")
                {
                    DisplayHeader(ConsoleColor.Green, "USUWANIE LEKU");
                    bool delNext;
                    do
                    {
                        ProgramLogic.DeleteMedicine();

                        Console.WriteLine();
                        delNext = Ask.ForBool("Czy usuwany będzie kolejny lek t/n: ");
                        Console.WriteLine();
                    } while (delNext);
                }

                if (input == "ord")
                {
                    DisplayHeader(ConsoleColor.Green, "SKŁADANIE ZAMÓWIENIA");
                    bool ordNext;
                    do
                    {
                        ProgramLogic.AddOrder();

                        Console.WriteLine();
                        ordNext = Ask.ForBool("Czy dodać kolejne zamówienie t/n: ");
                        Console.WriteLine();
                    } while (ordNext);
                }

                if (input == "find")
                {
                    DisplayHeader(ConsoleColor.Green, "WYSZUKIWANIE LEKU");
                    bool findNext;
                    do
                    {
                        ProgramLogic.SearchForMedicine();

                        Console.WriteLine();
                        findNext = Ask.ForBool("Czy wyszukać kolejny lek t/n: ");
                        Console.WriteLine();
                    } while (findNext);
                }
            }

            void DisplayHeader(ConsoleColor color, string header)
            {
                ConsoleEx.WriteLine(color, "".PadLeft(header.Length + 4, '-'));
                ConsoleEx.WriteLine(color, $"--{header}--");
                ConsoleEx.WriteLine(color, "".PadLeft(header.Length + 4, '-'));
            }
        }