Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.36 KB | None | 0 0
  1. using AutoMapper;
  2. using Microsoft.EntityFrameworkCore;
  3. using MyApp.Core.Commands.Contracts;
  4. using MyApp.Core.ViewModels;
  5. using MyApp.Data;
  6. using System;
  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[] inputArgs)
  24.         {
  25.             var age = int.Parse(inputArgs[0]);
  26.  
  27.             var employeesOlder = this.context.Employees
  28.                 .Include(x => x.Manager)
  29.                 .Where(x => DateTime.Now.Year - x.Birthday.Value.Year > age)
  30.                 .OrderByDescending(x => x.Salary);
  31.  
  32.             StringBuilder sb = new StringBuilder();
  33.  
  34.             foreach (var emp in employeesOlder)
  35.             {
  36.                 var employeeDto = this.mapper.CreateMappedObject<EmployeeDto>(emp);
  37.  
  38.                 var manager = employeeDto.Manager == null ? "[no manager]" : employeeDto.Manager.LastName;
  39.  
  40.                 sb.AppendLine($"{employeeDto.ToString()} - Manager: {manager}");
  41.             }
  42.  
  43.             return sb.ToString().TrimEnd();
  44.         }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement