Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. using AutoMapper;
  2. using MyApp.Core.Commands.Contracts;
  3. using MyApp.Core.ViewModels;
  4. using MyApp.Data;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9.  
  10. namespace MyApp.Core.Commands
  11. {
  12.     public class ListEmployeesOlderThanCommand : ICommand
  13.     {
  14.         private readonly MyAppContext context;
  15.         private readonly Mapper mapper;
  16.  
  17.         public ListEmployeesOlderThanCommand(MyAppContext context, Mapper mapper)
  18.         {
  19.             this.context = context;
  20.             this.mapper = mapper;
  21.         }
  22.  
  23.         public string Execute(string[] args)
  24.         {
  25.             int age = int.Parse(args[0]);
  26.  
  27.             var employeesOlderThan = this.context.Employees.Where(e => DateTime.Now.Year - e.Birthday.Value.Year > age)
  28.                 .OrderByDescending(e => e.Salary)
  29.                 .ToList();
  30.  
  31.  
  32.             List<EmployeeDto> employeesOlderDtos = new List<EmployeeDto>();
  33.  
  34.             foreach (var employee in employeesOlderThan)
  35.             {
  36.                 var employeeOlderThanDto = this.mapper.CreateMappedObject<EmployeeDto>(employee);
  37.                 employeesOlderDtos.Add(employeeOlderThanDto);
  38.             }
  39.  
  40.             StringBuilder sb = new StringBuilder();
  41.  
  42.             foreach (var employeeDto in employeesOlderDtos)
  43.             {
  44.                 foreach (var emp in employeesOlderThan)
  45.                 {
  46.                     if (emp.Id == employeeDto.Id)
  47.                     {
  48.                         sb.AppendLine($"{employeeDto.FirstName} {employeeDto.LastName} - ${employeeDto.Salary:f2} - Manager: {(emp.Manager == null ? "[no manager]" : emp.Manager.LastName)}");
  49.                     }
  50.                    
  51.                 }
  52.             }
  53.  
  54.             return sb.ToString().Trim();
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement