public Task <IReadOnlyList <GetEmployeeListViewModel> > Handle(GetEmployeeListQuery request, CancellationToken cancellationToken) => queryFacade.QueryAsync <GetEmployeeListViewModel>( @"SELECT e.Id, e.LastName, e.FirstName, e.MiddleName, e.Gender, e.EmployeeLevel, e.DateHired, e.DateExited, (SELECT COUNT(DISTINCT EmployeeId) FROM EmployeeManagers s WITH(NOLOCK) WHERE s.ManagerId = e.Id) AS NumSubordinates, m.Id AS ManagerId, m.LastName AS ManagerLastName, m.FirstName AS ManagerFirstName, m.MiddleName AS ManagerMiddleName FROM Employees e WITH(NOLOCK) LEFT JOIN EmployeeManagers em WITH(NOLOCK) ON em.EmployeeId = e.Id LEFT JOIN Employees m WITH(NOLOCK) ON em.ManagerId = m.Id");
public Task <IReadOnlyList <GetPaidTimeOffPolicyListViewModel> > Handle(GetPaidTimeOffPolicyListQuery request, CancellationToken cancellationToken) => queryFacade.QueryAsync <GetPaidTimeOffPolicyListViewModel>("SELECT Id, Name, AllowsUnlimitedPto, EmployeeLevel, IsDefaultForEmployeeLevel FROM PaidTimeOffPolicies WITH(NOLOCK)");