Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Employee
- {
- public string Name { get; set; }
- public decimal Salary { get; set; }
- public decimal Bonus { get; set; }
- public string Country { get; set; }
- public override string ToString()
- {
- var total = Salary + Bonus;
- return $"{Name} - Salario: {Salary.ToString("C2")} - Bonus: {Bonus.ToString("C2")} - Total: {total.ToString("C2")}";
- }
- }
- class Program
- {
- public static List<Employee> Employees = new List<Employee>()
- {
- new Employee() {Country = "Russia", Name = "Pavlov", Salary = 2850m, Bonus = 100m},
- new Employee() {Country = "Russia", Name = "Dimitri", Salary = 1940m, Bonus = 300m},
- new Employee() {Country = "Brazil", Name = "Nikolai", Salary = 2780m, Bonus = 150m},
- new Employee() {Country = "Brazil", Name = "Russell", Salary = 2400m, Bonus = 0m},
- new Employee() {Country = "UK", Name = "Kriger", Salary = 6550m, Bonus = 200m},
- new Employee() {Country = "US", Name = "Yure", Salary = 4800m, Bonus = 300m},
- new Employee() {Country = "US", Name = "Mikhail", Salary = 4100m, Bonus = 300m},
- };
- public static decimal GetSalaryAverage()
- {
- /* var result = (from e in Employees
- select e.Salary).Average();*/
- return Employees.Average(e => e.Salary);
- }
- public static IEnumerable<Employee> GetEmployeesWithSalaryAboveAverage()
- {
- var avg = GetSalaryAverage();
- /*var query = (from e in Employees
- where e.Salary > avg
- select e).ToList();*/
- var result = Employees.Where(x => x.Salary > avg).ToList();
- return result;
- }
- public static IEnumerable<Employee> GetOrderdEmployeesByTotal()
- {
- var result = Employees.OrderBy(x => x.Salary + x.Bonus).ToList();
- return result;
- }
- public static Employee GetEmployeeWithLowestSalary()
- {
- return Employees.OrderBy(x => x.Salary).FirstOrDefault();
- }
- public static IEnumerable<Employee> AdjustSalaryAndBonus(decimal percent)
- {
- var avg = GetSalaryAverage();
- var employees = Employees.Where(x => x.Salary < avg).ToList();
- foreach (var employee in employees)
- {
- employee.Salary *= 1 + percent;
- employee.Bonus *= 1 + percent;
- }
- return Employees;
- }
- public static void Group()
- {
- var groups = Employees.GroupBy(x => x.Country);
- foreach (var g in groups)
- {
- Console.WriteLine(g.Key + " Salario Medio: " + g.Average(x => x.Salary));
- }
- }
- static void Main(string[] args)
- {
- Console.WriteLine("Employees");
- Console.WriteLine("----------------------------------------------");
- Console.WriteLine("Average Salary: {0}", GetSalaryAverage().ToString("C2"));
- Console.WriteLine();
- Console.WriteLine("Employees with salary above average");
- var employeesWithSalaryAbove = GetEmployeesWithSalaryAboveAverage();
- foreach (var employee in employeesWithSalaryAbove)
- {
- Console.WriteLine(employee);
- }
- Console.WriteLine("Employees ordered by total");
- var employeesOrderedByTotal = GetOrderdEmployeesByTotal();
- foreach (var employee in employeesOrderedByTotal)
- {
- Console.WriteLine(employee);
- }
- Console.WriteLine("Lowest Salary:");
- Console.WriteLine(GetEmployeeWithLowestSalary());
- Console.WriteLine("Employees with 15% adjust");
- var adjustedEmployees = AdjustSalaryAndBonus(0.15m);
- foreach (var employee in adjustedEmployees)
- {
- Console.WriteLine(employee);
- }
- var avg = GetSalaryAverage();
- var employees = Employees.Select(x =>
- {
- if (x.Salary < avg)
- {
- x.Salary *= 1 + 0.15m;
- x.Bonus *= 1 + 0.15m;
- }
- return x;
- });
- foreach (var employee in employees)
- {
- Console.WriteLine(employee);
- }
- Console.ReadLine();
- }
- }
Add Comment
Please, Sign In to add comment