コード例 #1
0
        static void Main(string[] args)
        {
            Employee director     = new Manager("Ionescu Matei", new DateTime(2000, 5, 20), 5000, 500);
            Employee smallManager = new Manager("Popescu Mihai", new DateTime(2005, 6, 14), 3000, 200);

            director.AddSubordinate(smallManager);
            smallManager.AddSubordinate(new Programmer("Dinescu Cristian", new DateTime(2010, 10, 10), 2500));
            smallManager.AddSubordinate(new Programmer("Mircea Elena", new DateTime(2010, 8, 15), 2500));
            director.AddSubordinate(new Programmer("Marcu Silvia", new DateTime(2008, 3, 20), 2600));

            Console.WriteLine("Work day begins!");
            director.Work();

            Console.WriteLine();
            MediumSalary computeMediumSalary = new MediumSalary();

            director.Accept(computeMediumSalary);

            Console.WriteLine("The average salary in the company is: " + computeMediumSalary.Salary);
            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var company = new CompanyModel();
            var manager = new Manager()
            {
                Name       = "Maxim",
                LastName   = "Grynyuk",
                MiddleName = "Alexandrovich"
            };

            var foreman = new Foreman()
            {
                Name       = "Alexandr",
                LastName   = "Ivanov",
                MiddleName = "Segeyevich"
            };

            var worker = new Worker()
            {
                Name       = "Alexandr",
                LastName   = "Ivanov",
                MiddleName = "Danilovich"
            };

            company.Employees.Add(manager);
            company.Employees.Add(foreman);
            company.Employees.Add(worker);

            var managers = company.Employees.GetAllEmployees <Manager>();
            var foremans = company.Employees.GetAllEmployees <Foreman>();
            var workers  = company.Employees.GetAllEmployees <Worker>();

            int managersCount = company.Employees.GetEmployeesCount <Manager>();
            int foremansCount = company.Employees.GetEmployeesCount <Foreman>();
            int workersCount  = company.Employees.GetEmployeesCount <Worker>();

            manager.GiveTask(foreman);
            foreman.CheckEmployees();
            worker.Work();
            manager.Work();
            foreman.Work();

            company.Employees += manager;
            company.Employees += foreman;
            company.Employees += worker;

            if (company.Employees.IsExists(manager))
            {
                WriteLine("Exists");
            }
            if (company.Employees.IsExists(worker))
            {
                WriteLine("Exists");
            }
            if (company.Employees.IsExists(foreman))
            {
                WriteLine("Exists");
            }

            managers.PrintEmployees();
            WriteLine($" Managers count : {managersCount}");
            foremans.PrintEmployees();
            WriteLine($" Foremans count : {foremansCount}");
            workers.PrintEmployees();
            WriteLine($" Workers count : {workersCount}");

            if (company.Employees - manager)
            {
                WriteLine("manager deleted");
            }
            if (company.Employees - manager)
            {
                WriteLine("Deleted");
            }
            if (company.Employees - foreman)
            {
                WriteLine("foreman deleted");
            }
            if (company.Employees - worker)
            {
                WriteLine("worker deleted");
            }

            ReadLine();
        }