コード例 #1
0
ファイル: Program.cs プロジェクト: poli201210/MyApp
        /// <summary>
        /// The menu using object of PaymentLogic class,
        /// switch to ability to choose the prefered item.
        /// </summary>
        private static void PaymentBusinessLogicMenu()
        {
            PaymentLogic paymLogic = new PaymentLogic();

            Console.Clear();
            Console.WriteLine("Choose an action:");
            Console.WriteLine("1) List all payment");
            Console.WriteLine("2) Update payment");
            Console.WriteLine("3) Create new payment");
            Console.WriteLine("4) Delete payment");
            Console.WriteLine("5) Show payment's commission to the agency");
            Console.WriteLine("6) Show average commissions per payment");
            Console.Write("\r\nSelect an option: ");

            switch (Console.ReadLine())
            {
            case "1":
                Console.WriteLine("Table payment:");
                foreach (Payment item in paymLogic.GetAllPayments().ToList())
                {
                    Console.WriteLine($"pay_id: {item.PayId},    pay_amount: {item.PayAmount},    pay_applicant_id: {item.PayApplId},  pay_result:{item.PayIspayed}");
                }

                Console.ReadLine();

                break;

            case "2":
                Console.WriteLine("Update payment:");
                Console.WriteLine("Write Id of payment:");
                int payId = int.Parse(Console.ReadLine());
                Console.WriteLine("Write new price amount for a visa:");
                int amount = int.Parse(Console.ReadLine());
                paymLogic.ChangePriceAmount(payId, amount);
                Console.WriteLine("Changes done!");
                break;

            case "3":
                try
                {
                    Console.WriteLine("Create new payment:");
                    Console.WriteLine("write new id :");
                    int id = int.Parse(Console.ReadLine());
                    Console.WriteLine("Write existing tourist id:");
                    int tourId = int.Parse(Console.ReadLine());
                    Console.WriteLine("Write existing agency id:");
                    int agenId = int.Parse(Console.ReadLine());
                    Console.WriteLine("Enter amount of money that visa costs: ");
                    int money = int.Parse(Console.ReadLine());
                    Console.WriteLine("Enter if amount is [payed] or [not payed]: ");
                    string payorNot = Console.ReadLine();
                    paymLogic.CreateNewPayment(id, tourId, agenId, money, payorNot);
                    Console.WriteLine("Agency created successfully!");
                }
                catch (Exception ex)
                {
                    string message = string.Empty;
                    Console.ForegroundColor = ConsoleColor.Red;
                    if (ex is FormatException)
                    {
                        message = " Incorrect form";
                    }
                    else
                    {
                        Console.WriteLine(ex.Message);
                    }

                    Console.WriteLine(message);
                }

                break;

            case "4":
                Console.WriteLine("Delete payment by id:");
                Console.WriteLine("Write payment id:");
                int takeId = int.Parse(Console.ReadLine());
                paymLogic.RemoveOldPayment(takeId);
                Console.WriteLine("Payment deleted successfully!");
                break;

            case "5":
                Console.WriteLine("Show payment's commission");
                var commisions = paymLogic.GetPaymentCommissions();
                foreach (var comm in commisions)
                {
                    Console.WriteLine($" Commission: {comm.AmountOfCommission}, IsPayed:{comm.IsPaid} ");
                }

                Console.WriteLine("task output:");

                Task <IList <PaymentCommission> > paymentTask = paymLogic.GetPaymentCommissionAsync();
                paymentTask.Wait();
                if (paymentTask.IsCompletedSuccessfully)
                {
                    foreach (var task in paymentTask.Result)
                    {
                        Console.WriteLine($" Commission: {task.AmountOfCommission}, IsPayed:{task.IsPaid} ");
                    }
                }

                Console.ReadLine();
                break;

            case "6":
                Console.WriteLine("Show average payment's commission of the agencies");
                var comAvg = paymLogic.GetPaymentAverageCommissions();
                foreach (var co in comAvg)
                {
                    Console.WriteLine($" By Companies who: {co.IsPaid}, AvgCommissions:{co.AmountOfCommission} $");
                }

                Console.WriteLine("task output:");

                Task <IList <PaymentCommission> > payAvgComTask = paymLogic.GetPaymentAverageCommissionsAsync();
                payAvgComTask.Wait();
                if (payAvgComTask.IsCompletedSuccessfully)
                {
                    foreach (var task in payAvgComTask.Result)
                    {
                        Console.WriteLine($" By Companies who: {task.IsPaid}, AvgCommissions:{task.AmountOfCommission} $");
                    }
                }

                Console.ReadLine();
                break;
            }
        }