/// <summary>
        ///     Zmiana ilości leku
        /// </summary>

        private static void UpdateMedicineAmountCommand()
        {
            ConsoleEx.WriteLineWithColor(" Zmiana Ilości Leku ".PadLeft(25, '-').PadRight(30, '-'), ConsoleColor.Cyan);

            // Pobranie leku
            Medicine oldMedicine = GetMedicineForEditWithConfirmation();

            Console.WriteLine();

            if (oldMedicine == null)
            {
                ConsoleEx.WriteLineWithColor("Anulowano akcję!", ConsoleColor.Red);
                return;
            }

            // Pobranie ilości
            int newAmount;

            Console.Write("Podaj nową ilość: ");
            try
            {
                newAmount = int.Parse(Console.ReadLine().Trim());
            }
            catch
            {
                ConsoleEx.WriteLineWithColor("Niepoprawny index!", ConsoleColor.Red);
                return;
            }

            // Update Amount - Transakcja
            MedicineDAO.UpdateMedicineAmountByTransaction(oldMedicine, newAmount);
        }
        /// <summary>
        ///     Zmiana całego leku z bazy
        /// </summary>

        private static void UpdateMedicineCommand()
        {
            ConsoleEx.WriteLineWithColor(" Zmiana Lekarstwa ".PadLeft(24, '-').PadRight(30, '-'), ConsoleColor.Cyan);

            // Pobranie leku do zmiany
            Medicine oldMedicine = GetMedicineForEditWithConfirmation();

            // Format wyświetlania
            Console.WriteLine();

            if (oldMedicine == null)
            {
                ConsoleEx.WriteLineWithColor("Anulowano akcję!", ConsoleColor.Red);
                return;
            }

            // Pobranie nowego leku
            Medicine newMedicine = GetMedicineFromUser();

            if (newMedicine == null)
            {
                return;
            }

            // Update - Transakcja
            MedicineDAO.UpdateMedicineByTransaction(newMedicine, oldMedicine);
        }
        /// <summary>
        ///     Zwraca listę leków z indeksami
        ///     Wykorzystuje: GetMedicineByIndex()
        /// </summary>
        /// <param name="byNamePart"></param>

        private static List <Medicine> GetMedicinesForIndex(string byNamePart = "")
        {
            // Pobranie listy
            List <Medicine> medicines = MedicineDAO.SelectMedicines(byNamePart);

            if (medicines == null)
            {
                return(null);
            }

            return(medicines);
        }
        /// <summary>
        ///     Dodawanie leku do bazy
        /// </summary>

        private static void AddMedicineCommand()
        {
            ConsoleEx.WriteLineWithColor(" Dodawanie Leku ".PadLeft(23, '-').PadRight(30, '-'), ConsoleColor.Cyan);

            Medicine medicine = GetMedicineFromUser();

            if (medicine == null)
            {
                return;
            }

            // Insert
            MedicineDAO.InsertMedicineByTransaction(medicine);
        }
        /// <summary>
        ///     Usuwanie leku z bazy
        /// </summary>

        private static void DeleteMedicineCommand()
        {
            ConsoleEx.WriteLineWithColor(" Usuwanie Lekarstwa ".PadLeft(25, '-').PadRight(30, '-'), ConsoleColor.Cyan);

            // Pobranie leku
            Medicine medicine = GetMedicineForEditWithConfirmation();

            if (medicine == null)
            {
                ConsoleEx.WriteLineWithColor("Anulowano akcję!", ConsoleColor.Red);
                return;
            }

            // Delete - Transakcja
            MedicineDAO.DeleteMedicineByTransaction(medicine);
        }
        /// <summary>
        ///     Pokazuje listę leków
        ///     Wykorzystuje: ShowChosenMedicinesCommand() / ShowAllMedicinesCommand()
        /// </summary>
        /// <param name="byNamePart"></param>

        private static void ShowMedicines(string byNamePart = "")
        {
            List <Medicine> medicines = MedicineDAO.SelectMedicines(byNamePart);

            if (medicines == null)
            {
                return;
            }

            foreach (Medicine medicine in medicines)
            {
                medicine.ShowMedicine();
            }

            ConsoleEx.WriteLineWithColor("Sukces!", ConsoleColor.Green);
        }