Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using AutoMapper;
- using Microsoft.EntityFrameworkCore;
- using MyApp.Core.Commands.Contracts;
- using MyApp.Core.ViewModels;
- using MyApp.Data;
- using System;
- using System.Linq;
- using System.Text;
- namespace MyApp.Core.Commands
- {
- public class ListEmployeesOlderThanCommand : ICommand
- {
- private readonly MyAppContext context;
- private readonly Mapper mapper;
- public ListEmployeesOlderThanCommand(MyAppContext context, Mapper mapper)
- {
- this.context = context;
- this.mapper = mapper;
- }
- public string Execute(string[] inputArgs)
- {
- var age = int.Parse(inputArgs[0]);
- var employeesOlder = this.context.Employees
- .Include(x => x.Manager)
- .Where(x => DateTime.Now.Year - x.Birthday.Value.Year > age)
- .OrderByDescending(x => x.Salary);
- StringBuilder sb = new StringBuilder();
- foreach (var emp in employeesOlder)
- {
- var employeeDto = this.mapper.CreateMappedObject<EmployeeDto>(emp);
- var manager = employeeDto.Manager == null ? "[no manager]" : employeeDto.Manager.LastName;
- sb.AppendLine($"{employeeDto.ToString()} - Manager: {manager}");
- }
- return sb.ToString().TrimEnd();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement