示例#1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id")] SalesEmployee salesEmployee)
        {
            if (id != salesEmployee.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(salesEmployee);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SalesEmployeeExists(salesEmployee.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(salesEmployee));
        }
        static void Main(string[] args)
        {
            List <Employee> employees = new List <Employee>();

            HashSet <Sale> sales = new HashSet <Sale>();

            sales.Add(new Sale("Apple", 0.80M));
            sales.Add(new Sale("Orange", 0.90M));
            SalesEmployee salesEmployee = new SalesEmployee(12, "Ivan", "Ivanov", 900M, Employee.Department.Marketing, sales);

            HashSet <Project> projects = new HashSet <Project>();

            projects.Add(new Project("Secret project", "TOP SECRET"));
            Developer dev = new Developer(9, "Pesho", "Peshev", 1200M, Employee.Department.Production, projects);

            Manager manager = new Manager(10, "Gosho", "Goshev", 2000M, Employee.Department.Marketing, new HashSet <RegularEmployee>());

            employees.Add(salesEmployee);
            employees.Add(dev);
            employees.Add(manager);

            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
                Console.WriteLine("======================================");
            }
        }
    static void Main(string[] args)
    {
        SalesEmployee employee1  = new SalesEmployee("Alice", 1000, 500);
        decimal       aliceBonus = employee1.CalculateExtraBonus();

        Console.WriteLine(aliceBonus);
    }
示例#4
0
        static void Main()
        {
            List<Person> persons = new List<Person>();

            SalesEmployee todor = new SalesEmployee(123, "Todor", "Todorov", 3000m, Departments.Sales);
            todor.AddSale(new Sales("Windows XP SP3", new DateTime(2007, 07, 12), 400m));
            todor.AddSale(new Sales("NOD 32 8.01", new DateTime(2007, 08, 08), 150m));
            persons.Add(todor);

            SalesEmployee dobri = new SalesEmployee(122, "Dobromir", "Hristov", 3500m, Departments.Sales);
            dobri.AddSale(new Sales("Windows 7 PRO SP1", new DateTime(2009, 04, 16), 450m));
            dobri.AddSale(new Sales("AMD Phenom II X4 3.20 GHz", new DateTime(2010, 12, 24), 200m));
            persons.Add(dobri);

            Developer nedqlko = new Developer(007, "Nedqlko", "Nikolov", 6000m, Departments.Production);
            nedqlko.AddProject(new Projects("Smite", new DateTime(2009, 05, 15), "3rd person MOBA"));
            persons.Add(nedqlko);

            Manager roxana = new Manager(111, "Roxana", "Iliuta", 10000m, Departments.Marketing);
            roxana.AddEmployee(todor);
            roxana.AddEmployee(dobri);
            roxana.AddEmployee(nedqlko);
            persons.Add(roxana);

            Customer richKid = new Customer(999, "Richi", "Rich", 2500m);
            persons.Add(richKid);

            foreach (var person in persons)
            {
                Console.WriteLine(person + Environment.NewLine);
            }
        }
        static void Main()
        {
            var salesManager = new Manager(1, "Steve", "Ballmer", 250000, Department.Sales);
            var salesEmp1 = new SalesEmployee(3, "Stamat", "Stamatov", 2000, Department.Sales);
            var salesEmp2 = new SalesEmployee(4, "Minka", "Minkova", 2000, Department.Sales);
            salesEmp1.Sales.Add(new Sale("SQL Server 2014 Enterprise", DateTime.Now, 160000));
            salesEmp2.Sales.Add(new Sale("SQL Server 2014 Standard", DateTime.Now, 50000));

            salesManager.Employees.Add(salesEmp1);
            salesManager.Employees.Add(salesEmp2);

            var productionManager = new Manager(2, "Bill", "Gates", 725000, Department.Production);
            var developer1 = new Developer(5, "Pesho", "Peshev", 2500, Department.Production);
            var developer2 = new Developer(6, "Gosho", "Goshev", 2500, Department.Production);
            developer1.Projects.Add(new Project("Accounting module", DateTime.Now, string.Empty, ProjectState.Open));
            developer2.Projects.Add(new Project("Accounting module", DateTime.Now, string.Empty, ProjectState.Open));

            productionManager.Employees.Add(developer1);
            productionManager.Employees.Add(developer2);

            List<Person> people = new List<Person>()
            {
                salesManager,
                salesEmp1,
                salesEmp2,
                productionManager,
                developer1,
                developer2
            };

            foreach (var person in people)
            {
                Console.WriteLine("{0}\n", person);
            }
        }
示例#6
0
        public static List <Employee> GetEmployees()
        {
            List <Employee> employees = new List <Employee>();

            List <Sale> sales = new List <Sale>()
            {
                new Sale("Biri4ka", DateTime.Now, 5),
                new Sale("Biri4ka", DateTime.Now, 10)
            }
            ;
            Manager manager = new Manager(20, "Goshko", "Kurtev", 500, "Production", new List <IEmployee>()
            {
                new RegularEmployee(26, "Toni", "Montana", "Accounting", 1000)
            });
            SalesEmployee simo = new SalesEmployee(25, "Ani", "Ruseva", "Marketing", 700, sales);
            SalesEmployee semo = new SalesEmployee(27, "Sori", "Bratmi", "Sales", 250, sales);
            Developer     dev  = new Developer(55, "Kircho", "Atanasov", "Production", 2500, new List <Project>()
            {
                new Project("Game", DateTime.Now, "Igra za kef", "open"),
                new Project("Game2", DateTime.Now, "Igra za pari", "closed"),
            });

            employees.Add(manager);
            employees.Add(semo);
            employees.Add(simo);
            employees.Add(dev);

            return(employees);
        }
示例#7
0
        static void Main(string[] args)
        {
            // Кол-во работников.
            int n;

            WriteLine("Введите кол-во работников.");
            while (!int.TryParse(ReadLine(), out n) || n <= 0)
            {
                WriteLine("Некорректный ввод.");
            }

            // Сами работники.
            Employee[] Workers = new Employee[n];

            for (int i = 0; i < n; ++i)
            {
                WriteLine("Введите имя работника.");
                string Name = ReadLine();

                WriteLine("Введите заплату работника.");
                decimal Payment;
                while (!decimal.TryParse(ReadLine(), out Payment) || Payment < 0)
                {
                    WriteLine("Некорректный ввод.");
                }

                // В зависимости от типа работника, получаем разную информацию.
                WriteLine("Введите 1, если следующий работник - внештатный.");
                if (ReadLine() == "1")
                {
                    Console.WriteLine("Введите надбавку");
                    decimal Salesbonus;
                    while (!decimal.TryParse(ReadLine(), out Salesbonus) || Salesbonus < 0)
                    {
                        WriteLine("Некорректный ввод.");
                    }

                    Workers[i] = new SalesEmployee(Name, Payment, Salesbonus);
                }
                else
                {
                    Console.WriteLine("Введите число рабочих дней.");
                    int WorkingDays;
                    while (!int.TryParse(ReadLine(), out WorkingDays) || WorkingDays <= 0)
                    {
                        WriteLine("Некорректный ввод.");
                    }

                    Workers[i] = new PartTimeEmployee(Name, Payment, WorkingDays);
                }
            }

            // Сортируем и выводим информацию.
            Array.Sort(Workers);
            foreach (Employee Worker in Workers)
            {
                WriteLine("Имя Работника: " + Worker.name);
                WriteLine("Зарплата работника: " + Worker.CalculatePay());
            }
        }
示例#8
0
    static void Main()
    {
        var computer = new Sale("Lenovo","12-12-2014", 650);
        var dvd = new Sale("Philips", "12-12-2015", 300);
        var tv = new Sale("Samsung", "12-12-2016", 620);

        var john = new SalesEmployee(8120403565, "John", "Carera", 1500, Department.Production, dvd);
        var ivan = new SalesEmployee(85264040262, "Ivan", "Smallhouse", 5200, Department.Sales, computer, tv);

        var ludnica = new Project("gospodari.bg", "05-07-1947", "some details");
        var web = new Project("home.bg", "04-04-1984", "deeeetails");
        ludnica.CloseProject();
        
        var doncho = new Developer(85012236461, "Doncho", "Donkov", 41500, Department.Production, web, ludnica);

        var kiro = new Manager(7511119253, "Kiro", "Pora", john, ivan, doncho);

        var listOfPeople = new List<IPerson> {kiro, doncho, ivan, john};

        foreach (var person in listOfPeople)
        {
            Console.WriteLine(person);
            Console.WriteLine("--------------------------------------------------------------------------------");   
        }
    }
示例#9
0
        static void Main()
        {
            List<Person> people = new List<Person>();

            Employee bill = new RegularEmployee(1234, "Bill", "Smith", 10.00, Department.Accounting);
            Person frank = new SalesEmployee(8725, "Frank", "Richardson", 20.00,
                new Sale("Toy", new DateTime(2015, 7, 19), 5.00),
                new Sale("MEGA TOY", new DateTime(2015, 8, 29), 10.00));
            RegularEmployee hank = new RegularEmployee(8456, "Hank", "Tyson", 26.00, Department.Accounting);
            Manager homer = new Manager(8726, "Homer", "James", 50.00, Department.Accounting,
                bill,
                hank);
            Project x = new Project("Project X", new DateTime(2013, 11, 11), "[no details]", State.Open);
            x.CloseProject();
            Developer ivan = new Developer(6545, "Ivan", "Ivanov", 32.00,
                new Project("Flying Car", new DateTime(2014, 1, 24), "[no details]", State.Open),
                x);
            Customer arin = new Customer(7555, "Arin", "Newman", 10000.12);

            people.Add(bill);
            people.Add(frank);
            people.Add(hank);
            people.Add(homer);
            people.Add(ivan);
            people.Add(arin);

            foreach (var person in people)
            {
                Console.WriteLine(person.ToString() + "\n------------------------------------------------------");
            }
        }
        public bool Add(string jsonData)
        {
            SalesEmployee employee = (SalesEmployee)JsonConvert.DeserializeObject(jsonData, typeof(SalesEmployee));

            _context.SalesEmployees.Add(employee);
            return(true);
        }
示例#11
0
        static void Main(string[] args)
        {
            List <Employee> pumaManagerEmployees = new List <Employee>();
            Manager         pumaManager          = new Manager("20a", "Joshua", "Peterson", 10000, DepartmentType.Marketing, pumaManagerEmployees);

            List <Employee> adidasManagerEmployees = new List <Employee>();
            Manager         adidasManager          = new Manager("50a", "Vin", "Schneider", 11000, DepartmentType.Accounting, adidasManagerEmployees);

            List <Sale>   pumaSales         = new List <Sale>();
            SalesEmployee pumaSalesEmployee = new SalesEmployee("25b", "John", "Snow", 2500, DepartmentType.Sales, pumaSales);

            List <Sale>   adidasSales         = new List <Sale>();
            SalesEmployee adidasSalesEmployee = new SalesEmployee("21b", "Jim", "Summer", 4500, DepartmentType.Sales, adidasSales);

            List <Project> appleProjects  = new List <Project>();
            Developer      appleDeveloper = new Developer("12b", "George", "Simpson", 5500, DepartmentType.Production, appleProjects);

            List <Project> sonyProjects  = new List <Project>();
            Developer      sonyDeveloper = new Developer("551b", "Yamamoto", "Tsuchigumo", 125500, DepartmentType.Production, sonyProjects);

            List <Employee> employees = new List <Employee>();

            employees.Add(pumaManager);
            employees.Add(adidasManager);
            employees.Add(pumaSalesEmployee);
            employees.Add(adidasSalesEmployee);
            employees.Add(appleDeveloper);
            employees.Add(sonyDeveloper);

            foreach (var employee in employees)
            {
                Console.WriteLine(employee + "\n");
            }
        }
示例#12
0
        static void Main(string[] args)
        {
            Developer dev = new Developer(1367, "Boris", "Soltariiski", 1000, "Production", new List<Project>
            {
                new Project("Project", DateTime.Today, "My project"),
                new Project("Just another project", DateTime.Parse("4.04.2009"), "Nothing to write")
            });

            Manager man = new Manager(45625, "Gosho", "Peshev", 1500.2m, "Sales", new List<Employee>
            {
                new Employee(67356, "Mariika", "Ivanova", 356, "Accounting"),
                new Employee(63462, "Abdul", "Mahir", 782.4m, "Marketing")
            });

            SalesEmployee salesEmpl = new SalesEmployee(777353, "Dragan", "Koevich", 693.90m, "Sales", new List<Sale>
            {
                new Sale("Product", DateTime.Today, 100.90m)
            });

            List<Employee> employees = new List<Employee> {dev, man, salesEmpl};

            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
            }
        }
示例#13
0
 static void Main2()
 {
     EmployeeDelegate      empDel      = new EmployeeDelegate(GetEmployee);
     Employee              emp         = empDel();
     SalesEmployeeDelegate salesEmpDel = new SalesEmployeeDelegate(GetSalesEmployee);
     SalesEmployee         emp2        = salesEmpDel();
 }
示例#14
0
    static void Main()
    {
        var jaime = new Developer("PRGH45M", "Jaime", "Lannister", 3500, Department.Marketing);

        //var handStartDate = new DateTime(12,03,15);
        //var createHand = new Project("hand", handStartDate, "Some Details", "open");
        //Project.CloseProject(createHand);
        //Console.WriteLine(createHand.State);

        var tyrion = new SalesEmployee("100D445HG", "Tyrion", "Lannister", 3000, Department.Sales);

        var cersei = new Manager("900HGAD34", "Cersei", "Lannister", 5000, Department.Production);

        var lannisters = new List <Employee>()
        {
            jaime,
            tyrion,
            cersei
        };

        foreach (var lannisterEmployee in lannisters)
        {
            Console.WriteLine(lannisterEmployee);
        }
    }
示例#15
0
        static void Main(string[] args)
        {
            SalesEmployee saler = new SalesEmployee(123145, "Joro", "Petrov", 120.20m, DepartmentType.Production);
            saler.AddSale(new Sale("Liutenica", DateTime.Parse("12.12.2015"), 2.20m));

            Customer kakaMinka = new Customer(15651513, "Kaka", "Minka", 5000);
            Customer pepiMotichkata = new Customer(67654654, "Pepi", "Motichkata", 3000);
            Manager theBoss = new Manager(156136, "Chicho", "Gosho", 10000, DepartmentType.Marketing);

            Developer dev = new Developer(333, "Bai", "Stavri", 101010, DepartmentType.Accounting);
            var projectAmazon = new Project("Amazon", null, null, true);
            var projectSoftUni = new Project("SoftUni", DateTime.Now, "....", true);
            dev.Projects.Add(projectAmazon);

            List<Person> people = new List<Person>();
            people.Add(kakaMinka);
            people.Add(pepiMotichkata);
            people.Add(theBoss);

            foreach (Person per in people)
            {
                Console.WriteLine("ID: {0}\nFirst name: {1}\nLast name: {2}", per.Id,
                    per.FirstName, per.LastName);
                Console.WriteLine("----------------------------");
            }
        }
示例#16
0
 static void Main3()
 {
     EmployeeDelegate emp  = new EmployeeDelegate(GetEmployee);
     Employee         emp1 = emp();
     EmployeeDelegate empB = new EmployeeDelegate(GetSalesEmployee);
     //to obtain a derived type you must perform an explicit cast.
     SalesEmployee emp2 = (SalesEmployee)empB();
 }
示例#17
0
        static void Main(string[] args)
        {
            // PESHO DEVELOPER PROJECTS LIST
            IList <Project> peshoProjects = new List <Project>()
            {
                new Project("PeshoWebSite", new DateTime(), "Pesho's web page", "closed")
            };

            // EMPLOYEE LIST
            IList <Employee> employeesList = new List <Employee>();

            // GOSHO SALES LIST
            IList <Sale> goshoSaleList = new List <Sale>()
            {
                new Sale("Hosting", 500, new DateTime(2014, 1, 12)),
                new Sale("Web domain", 200, new DateTime(2014, 2, 11)),
                new Sale("VPS Server", 600, new DateTime(2015, 3, 13))
            };

            // PESHO DEVELOPER
            Developer     peshoDeveloper     = new Developer("Pesho", "Georgiev", 1, 1500M, "Production", peshoProjects);
            SalesEmployee goshoSalesEmployee = new SalesEmployee("Gosho", "Ivanov", 5, 2000, "Sales", goshoSaleList);

            // ADD PESHO TO EMPLOYEES LIST
            employeesList.Add(peshoDeveloper);

            // PESHO's MANAGER
            Manager peshoDeveloperManager = new Manager("Big", "Boss", 2, 5000M, "Production", employeesList);

            // PRINT PESHO AND PESHO's MANAGER
            Console.WriteLine(peshoDeveloperManager + "\r\n");
            Console.WriteLine(peshoDeveloper + "\r\n");

            // PRINT GOSHO AND GOSHO SAILS LIST
            Console.WriteLine(goshoSalesEmployee);
            Console.WriteLine("\r\nSales:\r\n{0}\r\n", String.Join("", goshoSaleList));

            // LIST OF EMPLOYEES OVERALL
            IList <Employee> companyEmployees = new List <Employee>();

            companyEmployees.Add(goshoSalesEmployee);
            companyEmployees.Add(peshoDeveloper);
            companyEmployees.Add(peshoDeveloperManager);

            // PRINT EACH COMPANY EMPLOYEE
            Console.WriteLine("Company employees overall:");
            foreach (var employee in companyEmployees)
            {
                Console.WriteLine(employee.FirstName + " " + employee.LastName);
            }

            // CUSTOMERS
            Customer tonchoCustumer = new Customer("Toncho", "Toshev", 6, 2424.22M);
            Customer petarCustomer  = new Customer("Petar", "Petrov", 7, 4312.02M);

            Console.WriteLine("\r\nCustomers:\r\n");
            Console.WriteLine("{0}\r\n\r\n{1}", tonchoCustumer, petarCustomer);
        }
示例#18
0
 public static void Main()
 {
     var employee = new SalesEmployee(123, "Gosho", "Goshev", Employee.DepartmentOptions.Marketing);
     employee.Sales.Add(new Sale("Fafla", Convert.ToDateTime("11-29-2015"), 0.55m));
     employee.Sales.Add(new Sale("Dyvka", Convert.ToDateTime("11-28-2015"), 0.20m));
     Console.WriteLine(employee.ToString());
     //Console.WriteLine(employee.Department);
     //Console.WriteLine("{0} {1} {2}", employee.Sales[0].ProductName, employee.Sales[0].Date, employee.Sales[0].Price);
 }
        static void Main()
        {
            var employee1 = new SalesEmployee("Alice",
                                              1000, 500);
            var employee2 = new Employee("Bob", 1200);

            Console.WriteLine($"Employee1 {employee1.name} earned: {employee1.CalculatePay()}");
            Console.WriteLine($"Employee2 {employee2.name} earned: {employee2.CalculatePay()}");
        }
    static void Main()
    {
        // Create some new employees.
        SalesEmployee employee1 = new SalesEmployee("Alice", 1000, 500);
        Employee      employee2 = new Employee("Bob", 1200);

        Console.WriteLine("Employee4 " + employee1.name + " earned: " + employee1.CalculatePay());
        Console.WriteLine("Employee4 " + employee2.name + " earned: " + employee2.CalculatePay());
    }
示例#21
0
        static void Main(string[] args)
        {
            // Создание массива и заполнение его объектами случайным образом.
            Employee[] employees = new Employee[10];
            Random     rand      = new Random();

            for (int i = 0; i < employees.Length; i++)
            {
                int cntr = rand.Next(0, 2);
                if (cntr == 0)
                {
                    employees[i] = new SalesEmployee(RandomString(), (decimal)(rand.Next(0, 2000) + rand.NextDouble()), (decimal)(rand.Next(0, 500) + rand.NextDouble()));
                }
                else if (cntr == 1)
                {
                    employees[i] = new PartTimeEmployee(RandomString(), (decimal)(rand.Next(0, 2000) + rand.NextDouble()), rand.Next(1, 30));
                }
            }

            // Разделение массива по виду объекта.
            List <Employee> salesEmployees    = new List <Employee>();
            List <Employee> partTimeEmployees = new List <Employee>();

            foreach (var employee in employees)
            {
                if (employee is SalesEmployee)
                {
                    salesEmployees.Add(employee);
                }
                else
                {
                    partTimeEmployees.Add(employee);
                }
            }

            // Сортировка списков по убыванию.
            salesEmployees.Sort(((employee, employee1) => employee.CalculatePay().CompareTo(employee1.CalculatePay())));
            salesEmployees.Reverse();
            partTimeEmployees.Sort(((employee, employee1) => employee.CalculatePay().CompareTo(employee1.CalculatePay())));
            partTimeEmployees.Reverse();

            // Вывод информации об объектах в массивах.
            Console.WriteLine("Sales employees: ");
            for (int i = 0; i < salesEmployees.Count; i++)
            {
                Console.WriteLine($"Employee {i + 1}: {salesEmployees[i].CalculatePay():f2}");
            }

            Console.WriteLine();
            Console.WriteLine("Part-time employees: ");
            for (int i = 0; i < partTimeEmployees.Count; i++)
            {
                Console.WriteLine($"Employee {i + 1}: {partTimeEmployees[i].CalculatePay():f2}");
            }
        }
示例#22
0
        private decimal CalculateSalary(SalesEmployee sales)
        {
            var longevityBonus = _arguments.BaseRate * GetLongevityBonus(sales.ExperienceYears,
                                                                         _arguments.ManagerBonusPerYear,
                                                                         _arguments.ManagerBonusLimit);

            var leadershipBonus = sales.AllSubordinates.Sum(CalculateSalary)
                                  * _arguments.SalesLeadershipBonus;

            return(_arguments.BaseRate + longevityBonus + leadershipBonus);
        }
示例#23
0
        public async Task <IActionResult> Create([Bind("Id")] SalesEmployee salesEmployee)
        {
            if (ModelState.IsValid)
            {
                _context.Add(salesEmployee);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(salesEmployee));
        }
    static void Main()
    {
        // Create some new employees.
            SalesEmployee employee1 = new SalesEmployee("Alice",
                          1000, 500);
            Employee employee2 = new Employee("Bob", 1200);

            Console.WriteLine("Employee4 " + employee1.name +
                      " earned: " + employee1.CalculatePay());
            Console.WriteLine("Employee4 " + employee2.name +
                      " earned: " + employee2.CalculatePay());
    }
        public bool AddItem(string jsonData)
        {
            JToken        token    = JObject.Parse(jsonData);
            string        label    = (string)token.SelectToken("label");
            SalesEmployee employee = new SalesEmployee()
            {
                Name = label
            };

            _context.SalesEmployees.Add(employee);
            return(true);
        }
        public static void TestTheOverride()
        {
            // Create some new employees.
            var employee1 = new SalesEmployee("Alice",
                                              1000, 500);
            var employee2 = new Employee("Bob", 1200);

            Console.WriteLine("Employee4 " + employee1.name +
                              " earned: " + employee1.CalculatePay());
            Console.WriteLine("Employee4 " + employee2.name +
                              " earned: " + employee2.CalculatePay());
        }
    static void Main()
    {
        string         dateString = "15.01.2015";
        DateTime       date       = DateTime.Parse(dateString);
        List <Project> projects   = new List <Project>();
        Project        project    = new Project("Diablo", date, "Ausome game", "open");

        projects.Add(project);

        dateString = "09.12.2015";
        date       = DateTime.Parse(dateString);
        project    = new Project("Fasty", date, "Storage program", "open");
        projects.Add(project);

        dateString = "09.09.2009";
        date       = DateTime.Parse(dateString);
        project    = new Project("Red Alert 3", date, "Game", "closed");
        projects.Add(project);

        List <Sale> sales = new List <Sale>();

        dateString = "09.01.2015";
        date       = DateTime.Parse(dateString);
        Sale sale = new Sale("Entersort ERP", date, 100000);

        sales.Add(sale);

        dateString = "05.01.2015";
        date       = DateTime.Parse(dateString);
        sale       = new Sale("SAP", date, 1000000);
        sales.Add(sale);


        List <Employee> employees    = new List <Employee>();
        List <Employee> subordinates = new List <Employee>();
        Employee        employee     = new Developer("Ivan", "Ivanov", 2342342, 7000, "Production", projects);

        subordinates.Add(employee);

        employee = new Developer("Petar", "Nikolov", 2345454, 5000, "Production", projects);
        subordinates.Add(employee);

        employee = new SalesEmployee("Snezhana", "Ilieva", 5666454, 3000, "Sales", sales);
        subordinates.Add(employee);

        employees = subordinates;
        employee  = new Manager("Ivan", "Georgiev", 656465654, 30000, "Sales", subordinates);
        //employees.Add(employee);
        foreach (Employee empl in subordinates)
        {
            Console.WriteLine(empl.ToString());
        }
    }
        public void TestSales()
        {
            var c              = new SalaryCalculator(SalaryArgs);
            var s              = new SalesEmployee("John Doe", DateTime.Now, null);
            var m              = new ManagerEmployee("Jane Doe", DateTime.Now, s);
            var e              = new Employee("John Smith", DateTime.Now, m);
            var eSalary        = c.CalculateSalary(e);
            var mSsalary       = c.CalculateSalary(m);
            var actualSalary   = c.CalculateSalary(s);
            var expectedSalary = SalaryArgs.BaseRate + SalaryArgs.SalesLeadershipBonus * (eSalary + mSsalary);

            Assert.AreEqual(expectedSalary, actualSalary);
        }
示例#29
0
        static void Main(string[] args)
        {
            List <Sale> ivanSales = new List <Sale>();

            ivanSales.Add(new Sale("product", new DateTime(2015, 2, 3), 1005.0));
            ivanSales.Add(new Sale("product", new DateTime(2015, 4, 12), 735.80));
            ivanSales.Add(new Sale("product", new DateTime(2015, 10, 8), 333.50));
            SalesEmployee ivan = new SalesEmployee("Ivan", "Dimov", "9002128830", 750.00, Department.Sales, ivanSales);


            SalesEmployee georgi = new SalesEmployee("Georgi", "Georgiev", "9003159031", 750.00, Department.Sales);

            georgi.AddSales(new List <Sale>
            {
                new Sale("product", new DateTime(2015, 4, 5), 1005.0),
                new Sale("product", new DateTime(2015, 3, 11), 735.80),
                new Sale("product", new DateTime(2015, 5, 8), 333.50)
            });

            Manager stanimir = new Manager("Stanimir", "Marinov", "8505177680", 1300.50, Department.Sales);

            stanimir.AddEmployees(new List <Employee> {
                ivan, georgi
            });

            List <Project> stoilProjects = new List <Project>();

            stoilProjects.Add(new Project("project", new DateTime(2015, 5, 6), State.open));
            Developer stoil = new Developer("Stoil", "Karamfilov", "9303029050", 1100, Department.Production, stoilProjects);

            List <Project> kamenProjects = new List <Project>();

            kamenProjects.Add(new Project("project", new DateTime(2015, 8, 10), State.closed, "OOP rocks"));
            RegularEmployee kamen = new Developer("Kamen", "Vodenicharov", "8302078861", 1200, Department.Production, kamenProjects);

            Customer customer = new Customer("Ivelin", "Galinov", "9312129045", 2458.30);

            customer.AddPurchases(2000);

            List <Person> persons = new List <Person>
            {
                ivan, georgi, stanimir, stoil, kamen, customer
            };

            foreach (var person in persons)
            {
                Console.WriteLine(person);
            }
        }
示例#30
0
        /// <summary>
        /// Updates the sales employee
        /// </summary>
        /// <param name="salesEmployee">Sales Employee</param>
        public virtual async Task UpdateSalesEmployee(SalesEmployee salesEmployee)
        {
            if (salesEmployee == null)
            {
                throw new ArgumentNullException(nameof(salesEmployee));
            }

            await _salesEmployeeRepository.UpdateAsync(salesEmployee);

            //clear cache
            await _cacheBase.RemoveByPrefix(CacheKey.SALESEMPLOYEE_PATTERN_KEY);

            //event notification
            await _mediator.EntityUpdated(salesEmployee);
        }
        public bool Delete(string jsonData)
        {
            SalesEmployee employee = (SalesEmployee)JsonConvert.DeserializeObject(jsonData, typeof(SalesEmployee));

            for (int i = 0; i < _context.SalesEmployees.Count; i++)
            {
                SalesEmployee currentEmployee = _context.SalesEmployees[i];
                if (currentEmployee.ID == employee.ID)
                {
                    _context.SalesEmployees.Remove(currentEmployee);
                    return(true);
                }
            }
            return(false);
        }
示例#32
0
        /// <summary>
        /// Inserts a sales employee
        /// </summary>
        /// <param name="salesEmployee">Sales Employee</param>
        public virtual async Task InsertSalesEmployee(SalesEmployee salesEmployee)
        {
            if (salesEmployee == null)
            {
                throw new ArgumentNullException("salesEmployee");
            }

            await _salesEmployeeRepository.InsertAsync(salesEmployee);

            //clear cache
            await _cacheManager.RemoveByPrefix(CacheKey.SALESEMPLOYEE_PATTERN_KEY);

            //event notification
            await _mediator.EntityInserted(salesEmployee);
        }
        public async Task <IActionResult> Add(SalesEmployeeModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new DataSourceResult {
                    Errors = ModelState.SerializeErrors()
                }));
            }

            var salesEmployee = new SalesEmployee();

            salesEmployee = model.ToEntity(salesEmployee);
            await _salesEmployeeService.InsertSalesEmployee(salesEmployee);

            return(new NullJsonResult());
        }
        public void TestTotal()
        {
            var c            = new SalaryCalculator(SalaryArgs);
            var s            = new SalesEmployee("John Doe", DateTime.Now, null);
            var m            = new ManagerEmployee("Jane Doe", DateTime.Now, s);
            var e            = new Employee("John Smith", DateTime.Now, m);
            var eSalary      = c.CalculateSalary(e);
            var mSsalary     = c.CalculateSalary(m);
            var sSalary      = c.CalculateSalary(s);
            var actualSalary = c.CalculateSalary(new List <Employee> {
                s, m, e
            });
            var expectedSalary = eSalary + mSsalary + sSalary;

            Assert.AreEqual(expectedSalary, actualSalary);
        }
示例#35
0
    static void Main()
    {
        var superMario = new Product("Super Mario", DateTime.Now, 30);
        var textEditor = new Product("Editor 2014", DateTime.Now, 100);

        var calculator   = new Project("Calculator", DateTime.Now);
        var pdfConverter = new Project("PDF converter", DateTime.Now, "Convert text file in PDF");

        pdfConverter.CloseProject();

        var asen = new SalesEmployee("Asen", "Mikov", 10001, 1200, Department.Marketing);

        asen.AddSales(superMario);
        asen.AddSales(textEditor);
        Console.WriteLine(asen);
        Console.WriteLine();

        var ivan = new SalesEmployee("Ivan", "Ivanov", 10002, 1250, Department.Marketing);

        ivan.AddSales(textEditor);
        ivan.AddSales(textEditor);

        var tzvetomir = new Delveloper("Tzvetomir", "Serov", 10003, 1500, Department.Production);

        tzvetomir.AddProject(calculator);
        tzvetomir.AddProject(pdfConverter);

        var dimitrina = new Delveloper("Dimitrima", "Shamanova", 10004, 1600, Department.Production);

        dimitrina.AddProject(calculator);
        dimitrina.AddProject(pdfConverter);
        Console.WriteLine(dimitrina);
        Console.WriteLine();

        var managerGesho = new Manager("Gesho", "Mihailov", 12345, 1800, Department.Marketing);

        managerGesho.AddEploymee(asen);
        managerGesho.AddEploymee(ivan);
        Console.WriteLine(managerGesho);
        Console.WriteLine();

        var managerPesho = new Manager("Pesho", "Milanov", 12346, 1900, Department.Production);

        managerPesho.AddEploymee(dimitrina);
        managerPesho.AddEploymee(tzvetomir);
        Console.WriteLine(managerPesho);
    }
示例#36
0
    static void Main()
    {
        var ultraGame  = new Product("UltraGame", DateTime.Now, 30);
        var textEditor = new Product("Editor 2014", DateTime.Now, 100);

        var calculator   = new Project("Calculator", DateTime.Now);
        var pdfConverter = new Project("PDF converter", DateTime.Now, "Convert text file in PDF");

        pdfConverter.CloseProject();

        var pesho = new SalesEmployee("Pesho", "Peshev", 10001, 1200, Department.Marketing);

        pesho.AddSales(ultraGame);
        pesho.AddSales(textEditor);
        Console.WriteLine(pesho);
        Console.WriteLine();

        var ivan = new SalesEmployee("Ivan", "Ivanov", 10002, 1250, Department.Marketing);

        ivan.AddSales(textEditor);
        ivan.AddSales(textEditor);

        var tsvetan = new Delveloper("Tsvetan", "Tsvetanov", 10003, 1500, Department.Production);

        tsvetan.AddProject(calculator);
        tsvetan.AddProject(pdfConverter);

        var gergana = new Delveloper("Gergana", "Gergina", 10004, 1600, Department.Production);

        gergana.AddProject(calculator);
        gergana.AddProject(pdfConverter);
        Console.WriteLine(gergana);
        Console.WriteLine();

        var managerTodor = new Manager("Todor", "Todorov", 12345, 1800, Department.Marketing);

        managerTodor.AddEploymee(pesho);
        managerTodor.AddEploymee(ivan);
        Console.WriteLine(managerTodor);
        Console.WriteLine();

        var managerIvanNeivanov = new Manager("Ivan", "Neivanov", 12346, 1900, Department.Production);

        managerIvanNeivanov.AddEploymee(gergana);
        managerIvanNeivanov.AddEploymee(tsvetan);
        Console.WriteLine(managerIvanNeivanov);
    }
        static void Main(string[] args)
        {
            SalesEmployee retailer = new SalesEmployee(12, "Ivan", "Ivanov", Department.Marketing, 500, new Sale("notebook", 340));

            Employee[] employees =
            {
                retailer,
                new Manager(28882, "Mlad", "Marinjay", Department.Marketing, 5500, retailer),
                new Developer(534, "Angel", "Georgiev", Department.Production, 2300, new Project("Code")),
                new SalesEmployee(342, "Stoqn", "Ivanov", Department.Accounting, 1200, new Sale("Neshto", 0)),
            };

            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
            }
        }
        public bool DeleteItem(string jsonData)
        {
            JToken token = JObject.Parse(jsonData);
            string id    = (string)token.SelectToken("value");
            string label = (string)token.SelectToken("label");

            for (int i = 0; i < _context.SalesEmployees.Count; i++)
            {
                SalesEmployee currentEmployee = _context.SalesEmployees[i];
                if (currentEmployee.ID == id)
                {
                    _context.SalesEmployees.Remove(currentEmployee);
                    return(true);
                }
            }
            return(false);
        }
        static void Main()
        {
            SalesEmployee retailer = new SalesEmployee("Borislav", "Krumov", 12, 500, Department.Marketing , new Sale("Book", 20.30m));

            Employee[] employees =
            {
                retailer,
                new Manager("Denislav", "Angelov", 15, 6500, Department.Marketing, retailer),
                new Developer("Katya", "Katerina", 16, 4500, Department.Production, new Project("Tic-Tac-Toe")),
                new SalesEmployee("Niki", "Mihov", 17, 3500, Department.Accounting, new Sale("Notebook", 4.50m))
            };

            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
            }
        }
示例#40
0
        private static void Hire()
        {
            var r         = new Random();
            var start     = Employee.CompanyFoundationDate;
            var totalDays = (DateTime.Now - start).TotalDays;

            var president = new SalesEmployee("John Smith", start);

            Staff.Add(president);

            var productionVisePresident = new ManagerEmployee("Jack Doe", start, president);

            Staff.Add(productionVisePresident);

            for (var i = 0; i < 5; i++)
            {
                var pmName = $"pm{i:D4}";
                var pmDate = start.AddDays(r.NextDouble() * totalDays);
                var pm     = new ManagerEmployee(pmName, pmDate, productionVisePresident);
                Staff.Add(pm);
                for (var j = 0; j < 5; j++)
                {
                    var peName = $"pe{i:D2}{j:D2}";
                    var peDate = start.AddDays(r.NextDouble() * totalDays);
                    Staff.Add(new Employee(peName, peDate, pm));
                }
            }

            var salesVicePresident = new SalesEmployee("Mary Good", start, president);

            Staff.Add(salesVicePresident);

            for (var i = 0; i < 5; i++)
            {
                var smName = $"sm{i:D4}";
                var smDate = start.AddDays(r.NextDouble() * totalDays);
                var sm     = new ManagerEmployee(smName, smDate, salesVicePresident);
                Staff.Add(sm);
                for (var j = 0; j < 5; j++)
                {
                    var seName = $"se{i:D2}{j:D2}";
                    var seDate = start.AddDays(r.NextDouble() * totalDays);
                    Staff.Add(new Employee(seName, seDate, sm));
                }
            }
        }
        public static void Main()
        {
            List<Sale> sales = new List<Sale>
            {
                new Sale("notebook", 20, DateTime.Now),
                new Sale("pen",2,DateTime.Now)
            };

            SalesEmployee retailer = new SalesEmployee("Kiril", "Petrov", 2314763, Departments.Marketing, 900);

            retailer.AddSale(sales[0]);
            retailer.AddSale(sales[1]);

            var pesho = new Manager("Petur", "Asenov", 3874303, Departments.Accounting, 1200);
            var katya = new Developer("Katya", "Katerina", 5344363, Departments.Production, 2300);
            var ivan = new SalesEmployee("Ivan", "Ivanov", 3429993, Departments.Accounting, 1300);

            var project = new Project("Code", DateTime.Now, ProjectState.Open);

            katya.AddProject(project);

            pesho.AddEmployee(retailer);
            pesho.AddEmployee(katya);
            pesho.AddEmployee(ivan);

            List<Employee> employees = new List<Employee>();

            employees.Add(retailer);
            employees.Add(pesho);
            employees.Add(katya);
            employees.Add(ivan);


            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
            }

            Console.WriteLine(new string('=', 10));

            foreach (var employee in pesho.EmployeesManaged)
            {
                Console.WriteLine(employee);
            }
        }
        static void Main()
        {
            SalesEmployee retailer = new SalesEmployee(12,"Jonny","Bravo",Departments.Marketing,500,new Sale("iPod",330));

            Employee[] employees = 
            {
                retailer,
                // new Manager(45," the boss","the company ",Departments.Marketing,234,new Sale("Something",3)),  // !PROBLEM!!
               //  new Developer(445," a name","the company ", Departments.Products,2220,new Project("the name of the project")),
                   new SalesEmployee(332," a name ","in the  company ", Departments.Accounting,1200,new Sale("Something",0)),
            };

            foreach (var employee in employees)
            {
                Console.WriteLine(employees);
            }

        }
示例#43
0
        static void Main(string[] args)
        {
            Developer developer = new Developer(11111111, "Todor", "Yordanov", 5000m, "Production",
               new List<Project> {
                { new Project("Money", DateTime.Parse("12.11.2015"), "This porject makes money!")},
                { new Project("Money2", DateTime.Parse("2.1.2005"), "Moneyyy!")}
               });

            Manager manager = new Manager(12191311, "Yordan", "Todorov", 4000m, "Sales",
            new List<Employee> {
                { new Employee(12191311, "Stoyan", "Dimov", 2000m, "Sales")},
                { new Employee(12191311, "Yordan", "Marinov", 1700m, "Sales")},
                { new Employee(12191311, "Marin", "Todorov", 2300m, "Sales")},
            });

            Manager anotherManager = new Manager(12191398, "Yordan", "Yordanov", 11000m, "Marketing",
            new List<Employee> {
                { new Employee(12191311, "Petar", "Todorov", 4000m, "Marketing")},
                { new Employee(12191311, "Vasil", "Petkov", 3800m, "Marketing")},
                { new Employee(12191311, "Qnko", "Qnkov", 4200m, "Marketing")},
                { new Employee(12191311, "Mancho", "Vasilev", 6000m, "Marketing")}
            });

            SalesEmployee salesEmployee = new SalesEmployee(78873465, "Sancho", "Mancho", 8800m, "Marketing",
            new List<Sale> {
                { new Sale("Very cool software", DateTime.Parse("30.9.15"), 32000m)},
                { new Sale("Very cool software", DateTime.Parse("11.9.15"), 25000m)},
                { new Sale("Cool software", DateTime.Parse("20.9.15"), 10000m)},
                { new Sale("Cool software", DateTime.Parse("3.10.15"), 15000m)}
            });

            List<Employee> employees = new List<Employee>();
            employees.Add(developer);
            employees.Add(manager);
            employees.Add(anotherManager);
            employees.Add(salesEmployee);

            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
            }
        }
示例#44
0
        static void Main(string[] args)
        {
            Developer dev = new Developer("Fiki", "Stoyanov", 552, Department.Accounting, 2000);
            Developer dev2 = new Developer("Boris", "Ivanov", 563, Department.Production, 1000);
            Manager manager = new Manager("Kostadin", "Blagoev", 522, Department.Sales, 3200);
            SalesEmployee salesEmp = new SalesEmployee("Strahil", "Momchilov", 500, Department.Marketing, 750.43m);

            IList <Employee> employees = new List<Employee>
            {
                dev,
                dev2,
                manager,
                salesEmp
            };

            foreach (Employee employee in employees)
            {
                Console.WriteLine(employee);
            }
        }
示例#45
0
        static void Main(string[] args)
        {
            List<Person> personData = new List<Person>();
            Manager one = new Manager();
            one.EmployeSet.Add(new Developer());
            SalesEmployee two = new SalesEmployee();
            two.SaleSet.Add(new Sale());
            two.SaleSet.Add(new Sale());
            Developer three = new Developer();
            three.projectSet.Add(new Project());
            three.projectSet.Add(new Project());

            personData.Add(one);
            personData.Add(two);
            personData.Add(three);

            foreach (Person currentPerson in personData)
            {
                Console.WriteLine(currentPerson);
            }
        }
示例#46
0
        static void Main()
        {
            Manager EK = new Manager(1, "Emil", "Kirilov", new List<Employee>());
            SalesEmployee DIG = new SalesEmployee(30968, "Ivaylo", "Genchev", new List<Sale>());
            Developer pesho = new Developer(2, "Petyr", "Cvetkov", new List<Project>());
            Manager me = new Manager
            {
                ID = 232323,
                FirstName = "Pesho",
                LastName = "Peshev",
                Employees = new List<Employee>()
            };
            Console.WriteLine(me.FirstName);

            List<Person> MostComputers = new List<Person> {EK, DIG, pesho};

            foreach (var person in MostComputers)
            {
                Console.WriteLine(person);
            }
        }
示例#47
0
    static void Main()
    {
        var superMario = new Product("Super Mario", DateTime.Now, 30);
        var textEditor = new Product("Editor 2014", DateTime.Now, 100);

        var calculator = new Project("Calculator", DateTime.Now);
        var pdfConverter = new Project("PDF converter", DateTime.Now, "Convert text file in PDF");
        pdfConverter.CloseProject();

        var asen = new SalesEmployee("Asen", "Mikov", 10001, 1200, Department.Marketing);
        asen.AddSales(superMario);
        asen.AddSales(textEditor);
        Console.WriteLine(asen);
        Console.WriteLine();

        var ivan = new SalesEmployee("Ivan", "Ivanov", 10002, 1250, Department.Marketing);
        ivan.AddSales(textEditor);
        ivan.AddSales(textEditor);

        var tzvetomir = new Delveloper("Tzvetomir", "Serov", 10003, 1500, Department.Production);
        tzvetomir.AddProject(calculator);
        tzvetomir.AddProject(pdfConverter);

        var dimitrina = new Delveloper("Dimitrima", "Shamanova", 10004, 1600, Department.Production);
        dimitrina.AddProject(calculator);
        dimitrina.AddProject(pdfConverter);
        Console.WriteLine(dimitrina);
        Console.WriteLine();

        var managerGesho = new Manager("Gesho", "Mihailov", 12345, 1800, Department.Marketing);
        managerGesho.AddEploymee(asen);
        managerGesho.AddEploymee(ivan);
        Console.WriteLine(managerGesho);
        Console.WriteLine();

        var managerPesho = new Manager("Pesho", "Milanov", 12346, 1900, Department.Production);
        managerPesho.AddEploymee(dimitrina);
        managerPesho.AddEploymee(tzvetomir);
        Console.WriteLine(managerPesho);
    }
示例#48
0
    static void Main()
    {
        var ultraGame = new Product("UltraGame", DateTime.Now, 30);
        var textEditor = new Product("Editor 2014", DateTime.Now, 100);

        var calculator = new Project("Calculator", DateTime.Now);
        var pdfConverter = new Project("PDF converter", DateTime.Now, "Convert text file in PDF");
        pdfConverter.CloseProject();

        var pesho = new SalesEmployee("Pesho", "Peshev", 10001, 1200, Department.Marketing);
        pesho.AddSales(ultraGame);
        pesho.AddSales(textEditor);
        Console.WriteLine(pesho);
        Console.WriteLine();

        var ivan = new SalesEmployee("Ivan", "Ivanov", 10002, 1250, Department.Marketing);
        ivan.AddSales(textEditor);
        ivan.AddSales(textEditor);

        var tsvetan = new Delveloper("Tsvetan", "Tsvetanov", 10003, 1500, Department.Production);
        tsvetan.AddProject(calculator);
        tsvetan.AddProject(pdfConverter);

        var gergana = new Delveloper("Gergana", "Gergina", 10004, 1600, Department.Production);
        gergana.AddProject(calculator);
        gergana.AddProject(pdfConverter);
        Console.WriteLine(gergana);
        Console.WriteLine();

        var managerTodor = new Manager("Todor", "Todorov", 12345, 1800, Department.Marketing);
        managerTodor.AddEploymee(pesho);
        managerTodor.AddEploymee(ivan);
        Console.WriteLine(managerTodor);
        Console.WriteLine();

        var managerIvanNeivanov = new Manager("Ivan", "Neivanov", 12346, 1900, Department.Production);
        managerIvanNeivanov.AddEploymee(gergana);
        managerIvanNeivanov.AddEploymee(tsvetan);
        Console.WriteLine(managerIvanNeivanov);
    }
        static void Main(string[] args)
        {
            Manager manager1 = new Manager("0000000001", "Manager1", "Manager1 Last name", Department.Accounting, 123m);
            Manager manager2 = new Manager("0000000002", "Manager2", "Manager2 Last name", Department.Sales, 3124m);
            Manager manager3 = new Manager("0000000003", "Manager2", "Manager2 Last name", Department.Marketing, 1423m);

            SalesEmployee salesEmployee1 = new SalesEmployee("0000000004", "SalesEmployee1", "SalesEmployee1 Last name", Department.Accounting, 512m);
            SalesEmployee salesEmployee2 = new SalesEmployee("0000000005", "SalesEmployee2", "SalesEmployee2 Last name", Department.Marketing, 513m);
            SalesEmployee salesEmployee3 = new SalesEmployee("0000000006", "SalesEmployee3", "SalesEmployee3 Last name", Department.Production, 1000m);

            Developer developer1 = new Developer("0000000007", "Developer1", "Developer1 Last name", Department.Marketing, 5523m);
            Developer developer2 = new Developer("0000000008", "Developer2", "Developer2 Last name", Department.Sales, 513m);
            Developer developer3 = new Developer("0000000009", "Developer3", "Developer3 Last name", Department.Accounting, 523m);

            Sale sale = new Sale("graphic card", DateTime.Now, 220m);
            Project project = new Project("OOP", "OOP course", DateTime.Now);

            manager1.AddEmployees(new HashSet<Employee> { salesEmployee1, developer3 });
            salesEmployee1.AddSales(new HashSet<Sale> { sale });
            developer1.AddProjects(new HashSet<Project> { project });

            IList<Employee> employees = new List<Employee>
            {
                manager1,
                manager2,
                manager3,
                salesEmployee1,
                salesEmployee2,
                salesEmployee3,
                developer1,
                developer2,
                developer3
            };

            foreach (var employee in employees)
            {
                Console.WriteLine(employee);
            }
        }
        public static void Main()
        {
            Project project1 = new Project("First project", new DateTime(2014, 12, 08), "open");
            project1.CloseProject();

            Project project2 = new Project("Second project", new DateTime(2015, 12, 24), "open");

            Manager manager = new Manager("8109087956", "Iskra", "Radeva", 3000m, "Marketing",
                new List<Employee>() {
                    new Developer("7710126545", "Ivan", "Mantarov", 1200m, "Marketing",
                    new List<Project>() {project1, project2})
                });

            SalesEmployee salesEmployee = new SalesEmployee("8009076545", "Miq", "Nikolova", 2000m, "Sales",
                new List<Sale>()
                {
                    new Sale("FirstSale", new DateTime(2015, 11, 13), 2200m), new Sale("SecondSale", DateTime.Today, 1358m)
                });

            Developer developer = new Developer("56121410000", "Krum", "Tomov", 2400, "Production",
                new List<Project>() {
                    new Project("otherProjectFirst", new DateTime(2013, 08, 21), "closed", "some details"),
                    new Project("OtherProject", new DateTime(2015, 09, 08), "open")
                });

            List<Person.Person> persons = new List<Person.Person>
            {
                manager,
                salesEmployee,
                developer
            };

            foreach (var person in persons)
            {
                Console.WriteLine("___________________________");
                Console.WriteLine(person);

            }
        }
        static List<IEmployee> Employees()
        {
            Project homeAlone = new Project("Home alone", new DateTime(2016, 05, 22), "");
            Project tarzan = new Project("Tarzan", new DateTime(2015, 05, 22), "The movie is being shot right now");
            HashSet<Project> projects = new HashSet<Project>() { homeAlone, tarzan };

            Sale buchva = new Sale("Buchva", 17.156);
            Sale korniz = new Sale("Korniz", 22.156);
            Sale magdanoz = new Sale("Magdanoz", 2.05);
            HashSet<Sale> sales = new HashSet<Sale>() { buchva, korniz, magdanoz };

            SalesEmployee salesEmployee = new SalesEmployee("Geogi", "Ivanov", "9304294003", 29129.2314m,
                Department.Production, sales);
            Developer developer = new Developer("Danel", "Kraev", "9304294003", 29129.2314m,
                Department.Production, projects);

            HashSet<Employee> managedEmployees = new HashSet<Employee>() { salesEmployee, developer };
            Manager manager = new Manager("Simeon", "Vanov", "9304294003", 29129.2314m, Department.Production,
                managedEmployees);

            List<IEmployee> employees = new List<IEmployee>() { salesEmployee, developer, manager };
            return employees;
        }
        static List<IEmployee> Employees()
        {
            Projects homeAlone = new Projects("Home alone", new DateTime(2016, 05, 22), "");
            Projects tarzan = new Projects("Tarzan", new DateTime(2015, 05, 22), "The movie is being shot right now");
            HashSet<Projects> projects = new HashSet<Projects>() { homeAlone, tarzan };

            Sales krastavica = new Sales("krastavici", 1.15m);
            Sales korniz = new Sales("Korniz", 22.15m);
            Sales boiler = new Sales("Boiler", 200.05m);
            HashSet<Sales> sales = new HashSet<Sales>() { krastavica, korniz, boiler };

            SalesEmployee salesEmployee = new SalesEmployee("Daniel", "Lydianov", "9304294003", 2500.00m,
                Department.Production, sales);
            Developer developer = new Developer("Angel", "Miladinov", "9304294003", 1500.00m,
                Department.Production, projects);

            HashSet<Employee> managedEmployees = new HashSet<Employee>() { salesEmployee, developer };
            Manager manager = new Manager("Volen", "Siderov", "9304294003", 2000.00m, Department.Sales,
                managedEmployees);

            List<IEmployee> employees = new List<IEmployee>() { salesEmployee, developer, manager };
            return employees;
        }
    static void Main()
    {
        Employee[] employees = new Employee[3];

        SalesEmployee stilian = new SalesEmployee("Stilian", "Stoikov", 1000, "Sales");
        stilian.Sales.Add(new Sales("Chocolate", 20));
        stilian.Sales.Add(new Sales("Bananas", 10));
        employees[0] = stilian;

        Developer georgi = new Developer("Georgi", "Georgiev", 1500, "Production");
        georgi.Projects.Add(new Project("Tetris game", new DateTime(2014,12,15), "open"));
        georgi.Projects.Add(new Project("Diablo 3", new DateTime(2013, 11, 10), "closed"));
        employees[1] = georgi;

        Manager theBoss = new Manager("Mihail", "Svetoslavov", 5000, "Marketing");
        theBoss.Subordinates.Add(georgi);
        theBoss.Subordinates.Add(stilian);
        employees[2] = theBoss;

        foreach (var employee in employees)
        {
            Console.WriteLine(employee.ToString());
        }
    }