Guest User

Untitled

a guest
Jan 21st, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. public class Employee
  2. {
  3. public string Name { get; set; }
  4. public decimal Salary { get; set; }
  5. public decimal Bonus { get; set; }
  6.  
  7. public string Country { get; set; }
  8.  
  9. public override string ToString()
  10. {
  11. var total = Salary + Bonus;
  12. return $"{Name} - Salario: {Salary.ToString("C2")} - Bonus: {Bonus.ToString("C2")} - Total: {total.ToString("C2")}";
  13. }
  14. }
  15.  
  16. class Program
  17. {
  18. public static List<Employee> Employees = new List<Employee>()
  19. {
  20. new Employee() {Country = "Russia", Name = "Pavlov", Salary = 2850m, Bonus = 100m},
  21. new Employee() {Country = "Russia", Name = "Dimitri", Salary = 1940m, Bonus = 300m},
  22. new Employee() {Country = "Brazil", Name = "Nikolai", Salary = 2780m, Bonus = 150m},
  23. new Employee() {Country = "Brazil", Name = "Russell", Salary = 2400m, Bonus = 0m},
  24. new Employee() {Country = "UK", Name = "Kriger", Salary = 6550m, Bonus = 200m},
  25. new Employee() {Country = "US", Name = "Yure", Salary = 4800m, Bonus = 300m},
  26. new Employee() {Country = "US", Name = "Mikhail", Salary = 4100m, Bonus = 300m},
  27. };
  28.  
  29. public static decimal GetSalaryAverage()
  30. {
  31. /* var result = (from e in Employees
  32. select e.Salary).Average();*/
  33.  
  34. return Employees.Average(e => e.Salary);
  35. }
  36.  
  37. public static IEnumerable<Employee> GetEmployeesWithSalaryAboveAverage()
  38. {
  39. var avg = GetSalaryAverage();
  40.  
  41. /*var query = (from e in Employees
  42. where e.Salary > avg
  43. select e).ToList();*/
  44.  
  45. var result = Employees.Where(x => x.Salary > avg).ToList();
  46.  
  47. return result;
  48. }
  49.  
  50. public static IEnumerable<Employee> GetOrderdEmployeesByTotal()
  51. {
  52. var result = Employees.OrderBy(x => x.Salary + x.Bonus).ToList();
  53.  
  54. return result;
  55. }
  56.  
  57. public static Employee GetEmployeeWithLowestSalary()
  58. {
  59. return Employees.OrderBy(x => x.Salary).FirstOrDefault();
  60. }
  61.  
  62. public static IEnumerable<Employee> AdjustSalaryAndBonus(decimal percent)
  63. {
  64. var avg = GetSalaryAverage();
  65.  
  66. var employees = Employees.Where(x => x.Salary < avg).ToList();
  67.  
  68. foreach (var employee in employees)
  69. {
  70. employee.Salary *= 1 + percent;
  71. employee.Bonus *= 1 + percent;
  72. }
  73.  
  74. return Employees;
  75. }
  76.  
  77. public static void Group()
  78. {
  79. var groups = Employees.GroupBy(x => x.Country);
  80.  
  81. foreach (var g in groups)
  82. {
  83. Console.WriteLine(g.Key + " Salario Medio: " + g.Average(x => x.Salary));
  84. }
  85. }
  86.  
  87. static void Main(string[] args)
  88. {
  89. Console.WriteLine("Employees");
  90. Console.WriteLine("----------------------------------------------");
  91.  
  92. Console.WriteLine("Average Salary: {0}", GetSalaryAverage().ToString("C2"));
  93. Console.WriteLine();
  94.  
  95. Console.WriteLine("Employees with salary above average");
  96. var employeesWithSalaryAbove = GetEmployeesWithSalaryAboveAverage();
  97.  
  98. foreach (var employee in employeesWithSalaryAbove)
  99. {
  100. Console.WriteLine(employee);
  101. }
  102.  
  103. Console.WriteLine("Employees ordered by total");
  104. var employeesOrderedByTotal = GetOrderdEmployeesByTotal();
  105.  
  106. foreach (var employee in employeesOrderedByTotal)
  107. {
  108. Console.WriteLine(employee);
  109. }
  110.  
  111. Console.WriteLine("Lowest Salary:");
  112. Console.WriteLine(GetEmployeeWithLowestSalary());
  113.  
  114. Console.WriteLine("Employees with 15% adjust");
  115. var adjustedEmployees = AdjustSalaryAndBonus(0.15m);
  116.  
  117. foreach (var employee in adjustedEmployees)
  118. {
  119. Console.WriteLine(employee);
  120. }
  121.  
  122. var avg = GetSalaryAverage();
  123.  
  124. var employees = Employees.Select(x =>
  125. {
  126. if (x.Salary < avg)
  127. {
  128. x.Salary *= 1 + 0.15m;
  129. x.Bonus *= 1 + 0.15m;
  130. }
  131.  
  132. return x;
  133. });
  134.  
  135. foreach (var employee in employees)
  136. {
  137. Console.WriteLine(employee);
  138. }
  139.  
  140. Console.ReadLine();
  141. }
  142. }
Add Comment
Please, Sign In to add comment