예제 #1
0
        static public void Run()
        {
            Worker worker  = new Worker(Guid.NewGuid(), "Cavid", "Mahsumov", 16, "Programmer", 2500, DateTime.Now, DateTime.Now);
            Worker worker1 = new Worker(Guid.NewGuid(), "Murad", "Sadixov", 17, "Programmer", 2500, DateTime.Now, DateTime.Now);
            Worker worker2 = new Worker(Guid.NewGuid(), "Tural", "Tahirli", 29, "Programmer", 2500, DateTime.Now, DateTime.Now);
            Worker worker3 = new Worker(Guid.NewGuid(), "Eli", "Ibadzade", 18, "Programmer", 2500, DateTime.Now, DateTime.Now);
            Worker worker4 = new Worker(Guid.NewGuid(), "Elxan", "Atayev", 15, "Programmer", 2500, DateTime.Now, DateTime.Now);

            Worker[] workers = new Worker[5] {
                worker, worker1, worker2, worker3, worker4
            };
            CEO     ceo      = new CEO(Guid.NewGuid(), "Elon", "Musk", 49, "Ceo", 5000);
            Manager manager  = new Manager(Guid.NewGuid(), "John", "Johnlu", 18, "Manager", 1000);
            Manager manager1 = new Manager(Guid.NewGuid(), "Mike", "Tyson", 19, "Manager", 1000);
            Manager manager2 = new Manager(Guid.NewGuid(), "Rokky", "Balboa", 20, "Manager", 1000);

            Manager[] managers = new Manager[3] {
                manager, manager1, manager2
            };
            Bank bank = new Bank
            {
                Name   = "Yelo Bank",
                Budget = 10000000,
                Ceo    = ceo
            };

            bank.AddManager(manager);
            bank.AddManager(manager1);
            bank.AddManager(manager2);
            bank.AddWorker(worker);
            bank.AddWorker(worker1);
            bank.AddWorker(worker2);
            bank.AddWorker(worker3);
            bank.AddWorker(worker4);
            Helper.ShowBankInfo(bank);
            void GiveCredit()
            {
                Console.Write("Enter Client FullName : ");
                string Name = Console.ReadLine();

                Console.WriteLine();
                Console.Write("Enter Client Surname : ");
                string surnanme = Console.ReadLine();

                Console.WriteLine();
                Console.Write("Enter The Client Age : ");
                int age = int.Parse(Console.ReadLine());

                Console.WriteLine();
                Console.Write("Enter The Salary : ");
                int salary = int.Parse(Console.ReadLine());

                Console.WriteLine();
                Console.WriteLine("Enter The CLient LiveAdress");
                string liveadress = Console.ReadLine();

                Console.Write("Enter The Client WorkAdress : ");
                string workadress = Console.ReadLine();

                Console.WriteLine();
                HelperClient.client = new Client(Guid.NewGuid(), Name, surnanme, age, salary, liveadress, workadress);
                bank.AddClient(HelperClient.client);
                Console.WriteLine("How Many want Credit ? ");
                int amount = int.Parse(Console.ReadLine());

                Console.WriteLine("How Many Month ? ");
                int    month  = int.Parse(Console.ReadLine());
                Credit credit = new Credit(Guid.NewGuid(), HelperClient.client, amount, 12, month, 0);

                bank.AddCredit(credit);
                bank.GiveCredit(credit);
                Console.WriteLine("Credit was Given");
                System.Threading.Thread.Sleep(1000);
                Console.Clear();
            }

            int chooseW = 0;
            int chooseM = 0;
            int chs     = 0;

            void Back()
            {
                Console.WriteLine("1)Back");
                int a = int.Parse(Console.ReadLine());

                if (a == 1)
                {
                    Menu();
                }
                else
                {
                    throw new WrongSelectionException("Wrong selection");
                }
            }

            void excahngeMoney()
            {
                Console.WriteLine($"++++++++Valyuta++++++++");
                Console.WriteLine($"1)Dollar : {MoneyValues.USD}");
                Console.WriteLine($"2)Euro : {MoneyValues.Euro}");
                Console.WriteLine($"3)Tl : {MoneyValues.TL}");
                int excselection = int.Parse(Console.ReadLine());

                if (excselection == 1)
                {
                    Console.WriteLine("Money : ? ");
                    double money = double.Parse(Console.ReadLine());
                    bank.Exchange("dollar", money);
                    Console.WriteLine("Exchange Succesfly");
                }
                else if (excselection == 2)
                {
                    Console.WriteLine("Money amount ? ");
                    double money = double.Parse(Console.ReadLine());
                    bank.Exchange("euro", money);
                    Console.WriteLine("Exchange Succesfly");
                }
                else if (excselection == 3)
                {
                    Console.WriteLine("Money amount ? ");
                    double money = double.Parse(Console.ReadLine());
                    bank.Exchange("tl", money);
                    Console.WriteLine("Exchange Succesfly");
                }
                else
                {
                    throw new WrongSelectionException("Wrong Selection");
                }
            }

            void WorkerSelection()
            {
                Console.WriteLine("1)Give Information Worker");
                Console.WriteLine("2)Give Credit");
                Console.WriteLine("3)Add Operation");
                Console.WriteLine("4)Back");
                Console.Write("Your Select : ");
                chooseW = int.Parse(Console.ReadLine());
            }

            void ManagerSelection()
            {
                Helper.PrintManagers(managers);
                Console.WriteLine("Select Manager : ");
                chs = int.Parse(Console.ReadLine());
            }

            void MSelection()
            {
                Console.WriteLine($"1)Make Organizer");
                Console.WriteLine($"2)Calculate Salaries");
                Console.WriteLine("3)Back");
                chooseM = int.Parse(Console.ReadLine());
            }

            Console.WriteLine("1)Show Bank Info");
            Console.WriteLine("2)Ceo");
            Console.WriteLine("3)Manager");
            Console.WriteLine("4)Workers");
            Console.WriteLine("5)Clients");
            Console.WriteLine("6)Bank");
            Console.WriteLine("7)Exchange Money");
            Console.WriteLine("8)Exit");
            Console.WriteLine();
            Console.Write("Enter the Choose : ");
            int choose = int.Parse(Console.ReadLine());

            void Menu()
            {
                Console.Clear();
                Console.WriteLine("1)Show Bank Info");
                Console.WriteLine("2)Ceo");
                Console.WriteLine("3)Manager");
                Console.WriteLine("4)Workers");
                Console.WriteLine("5)Clients");
                Console.WriteLine("6)Bank");
                Console.WriteLine("7)Exchange Money");
                Console.WriteLine("8)Exit");
                Console.WriteLine();
                Console.Write("Enter the Choose : ");
                choose = int.Parse(Console.ReadLine());
                Console.Clear();
                SwitchSelect();
            }

            switch (choose)
            {
            case 1:
            {
                Helper.ShowBankInfo(bank);
                Back();
                break;
            }

            case 2:
            {
                Helper.PrintCeo(ceo);
                Console.WriteLine("1)Make Meeting");
                Console.WriteLine("2)Make Organizer");
                Console.WriteLine("3)Make Control");
                Console.WriteLine("4)Deacrease Percentage");
                Console.WriteLine("5)Back");
                int choose1 = int.Parse(Console.ReadLine());
                if (choose1 == 1)
                {
                    ceo.MakeMeeting(workers);
                    Back();
                }
                else if (choose1 == 2)
                {
                    ceo.Organize();
                    Back();
                }
                else if (choose1 == 3)
                {
                    ceo.Control();
                    Back();
                }
                else if (choose1 == 4)
                {
                    Console.WriteLine("Enter the deacrease Percent");
                    double deacrease = double.Parse(Console.ReadLine());
                    ceo.DecreasePercentage(deacrease);
                    Console.WriteLine(Credit.Percent);
                    Back();
                }
                else if (choose1 == 5)
                {
                    Console.Clear();
                    Menu();
                }
                break;
            }

            case 3:
            {
                ManagerSelection();
                if (chs <= managers.Length)
                {
                    Console.WriteLine($"Your Manager : {managers[chs - 1].Name}");
                    MSelection();
                    switch (chooseM)
                    {
                    case 1:
                    {
                        managers[chs - 1].Organize();
                        Back();
                        break;
                    }

                    case 2:
                    {
                        Console.WriteLine($"Total Salaries : {managers[chs - 1].CalculateSlaries(workers)}");
                        Back();
                        break;
                    }

                    case 3:
                    {
                        Console.Clear();
                        Menu();
                        break;
                    }

                    default:
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Wrong Choose");
                        Back();
                        break;
                    }
                    }
                }
                else
                {
                    throw new IndexOutOfRangeException("Out of range Exception.Please Enter The 1-7 number");
                }

                break;
            }

            case 4:
            {
                Console.WriteLine("++++++Workers++++++");
                Helper.PrintWorkers(workers);
                Console.Write("Your Choose : ");
                int workchoose = int.Parse(Console.ReadLine());
                if (workchoose <= workers.Length)
                {
                    Console.Clear();
                    Console.WriteLine($"Your Worker : {workers[workchoose - 1].Name}");
                    WorkerSelection();
                    if (chooseW == 1)
                    {
                        Console.Clear();
                        workers[workchoose - 1].Show();
                        Back();
                    }
                    else if (chooseW == 2)
                    {
                        GiveCredit();
                        Back();

                        //MainMenu();
                    }
                    else if (chooseW == 3)
                    {
                        Console.WriteLine("What Is Prosses Name : ?");
                        string prname = Console.ReadLine();
                        workers[workchoose - 1].AddOperation(new Operation(Guid.NewGuid(), prname, DateTime.Now));
                        Back();
                    }
                    else if (chooseW == 4)
                    {
                        Console.Clear();
                        Menu();
                    }
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Workers Is Not Found");
                    Back();
                }

                break;
            }

            case 5:
            {
                Console.Clear();
                if (bank.Clients != null)
                {
                    Helper.ShowBankClient(bank.Clients);
                    Back();
                }
                else
                {
                    Console.WriteLine("Client Not Found");
                    Back();
                }
                break;
            }

            case 6:
            {
                Console.WriteLine("1)Show Client Credit");
                Console.WriteLine("2)Pay Credit");
                Console.WriteLine("3)Show All Credit");
                int bankchoose = int.Parse(Console.ReadLine());
                if (bankchoose == 1)
                {
                    Console.Write("Enter The Client Name : ");
                    string nam = Console.ReadLine();
                    bank.ShowClientCredit(nam);
                    Back();
                }
                else if (bankchoose == 2)
                {
                    Console.Write("Enter The Name : ");
                    string name = Console.ReadLine();
                    Console.WriteLine();
                    Console.Write("Enter The Money : ");
                    double money = double.Parse(Console.ReadLine());
                    bank.PayCredit(name, money);
                    Back();
                }
                else if (bankchoose == 3)
                {
                    bank.ShowAllCredit();
                    Back();
                }
                break;
            }

            case 7:
            {
                excahngeMoney();
                Back();
                break;
            }

            default:
            {
                Console.ForegroundColor = ConsoleColor.Red;
                throw new WrongSelectionException("Wrong Selection...Please Enter 1-7 number");
                break;
            }
            }
            void SwitchSelect()
            {
                Console.Clear();
                switch (choose)
                {
                case 1:
                {
                    Console.Clear();
                    Helper.ShowBankInfo(bank);
                    Back();
                    break;
                }

                case 2:
                {
                    Console.Clear();
                    Helper.PrintCeo(ceo);
                    Console.WriteLine("1)Make Meeting");
                    Console.WriteLine("2)Make Organizer");
                    Console.WriteLine("3)Make Control");
                    Console.WriteLine("4)Deacrease Percentage");
                    Console.WriteLine("5)Back");
                    int choose1 = int.Parse(Console.ReadLine());
                    if (choose1 == 1)
                    {
                        ceo.MakeMeeting(workers);
                        Console.WriteLine("1)Back");
                        int a = int.Parse(Console.ReadLine());
                        Back();
                    }
                    else if (choose1 == 2)
                    {
                        Console.Clear();
                        ceo.Organize();
                        Back();
                    }
                    else if (choose1 == 3)
                    {
                        Console.Clear();
                        ceo.Control();
                        Back();
                    }
                    else if (choose1 == 4)
                    {
                        Console.Clear();
                        Console.WriteLine("Enter the deacrease Percent");
                        double deacrease = double.Parse(Console.ReadLine());
                        ceo.DecreasePercentage(deacrease);
                        Console.WriteLine(Credit.Percent);
                        Back();
                    }
                    else if (choose1 == 5)
                    {
                        Console.Clear();
                        Menu();
                    }
                    break;
                }

                case 3:
                {
                    Console.Clear();
                    ManagerSelection();
                    if (chs <= managers.Length)
                    {
                        Console.WriteLine($"Your Manager : {managers[chs - 1].Name}");
                        MSelection();
                        switch (chooseM)
                        {
                        case 1:
                        {
                            managers[chs - 1].Organize();
                            Back();
                            break;
                        }

                        case 2:
                        {
                            Console.WriteLine(managers[chs - 1].CalculateSlaries(workers));
                            Back();
                            break;
                        }

                        case 3:
                        {
                            Console.Clear();
                            Menu();
                            break;
                        }

                        default:
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Wrong Choose");
                            Back();
                            break;
                        }
                        }
                    }
                    else
                    {
                        throw new EmployeeNotFound("Manager Is Not Found");
                    }

                    break;
                }

                case 4:
                {
                    Console.WriteLine("++++++Workers++++++");
                    Helper.PrintWorkers(workers);
                    Console.Write("Your Choose : ");
                    int workchoose = int.Parse(Console.ReadLine());
                    if (workchoose <= workers.Length)
                    {
                        Console.WriteLine($"Your Worker : {workers[workchoose - 1].Name}");
                        WorkerSelection();
                        if (chooseW == 1)
                        {
                            Console.Clear();
                            workers[workchoose - 1].Show();
                            Back();
                        }
                        else if (chooseW == 2)
                        {
                            GiveCredit();
                            Console.Clear();


                            Menu();
                        }
                        else if (chooseW == 3)
                        {
                            Console.WriteLine("What Is Prosses Name : ?");
                            string prname = Console.ReadLine();
                            workers[workchoose - 1].AddOperation(new Operation(Guid.NewGuid(), prname, DateTime.Now));
                            Back();
                        }
                        else if (chooseW == 4)
                        {
                            Console.Clear();
                            Menu();
                        }
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        throw new EmployeeNotFound("Worker Is Not Found");
                    }

                    break;
                }

                case 5:
                {
                    if (bank.Clients != null)
                    {
                        Console.Clear();
                        Helper.ShowBankClient(bank.Clients);
                        Back();
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Client not Found");
                        Console.ResetColor();
                        Back();
                    }
                    break;
                }

                case 6:
                {
                    Console.Clear();
                    Console.WriteLine("1)Show Client Credit");
                    Console.WriteLine("2)Pay Credit");
                    Console.WriteLine("3)Show All Credit");
                    int bankchoose = int.Parse(Console.ReadLine());
                    if (bankchoose == 1)
                    {
                        Console.Clear();
                        Console.Write("Enter The Client Name : ");
                        string nam = Console.ReadLine();



                        bank.ShowClientCredit(nam);

                        Back();
                    }
                    else if (bankchoose == 2)
                    {
                        Console.Clear();
                        Console.Write("Enter The Name : ");
                        string name = Console.ReadLine();
                        Console.WriteLine();
                        Console.Write("Enter The Money : ");
                        double money = double.Parse(Console.ReadLine());
                        bank.PayCredit(name, money);
                        Console.WriteLine("1)Back");
                        int a = int.Parse(Console.ReadLine());
                        if (a == 1)
                        {
                            Console.Clear();
                            Menu();
                        }
                        else
                        {
                            throw new IndexOutOfRangeException("Wrong Number");
                        }
                    }
                    else if (bankchoose == 3)
                    {
                        Console.Clear();
                        bank.ShowAllCredit();
                        Back();
                    }
                    break;
                }

                case 7:
                {
                    excahngeMoney();
                    Back();

                    break;
                }

                case 8:
                {
                    Console.WriteLine("Waiting Again ");
                    Environment.Exit(7);
                    break;
                }

                default:
                {
                    throw new IndexOutOfRangeException("Out of Range Exception...Please Enter The 1-7 number");
                    break;
                }
                }
            }
        }