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(); }
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(); }