/// <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; } }