public async Task <List <DailyEmployeeReport> > GetDailyEmployeeReports(DateTime date) { List <DailyEmployeeReport> reports = new List <DailyEmployeeReport>(); List <Employee> employees = await _usersContext.Employees.Include(e => e.Treatments).ToListAsync(); foreach (Employee employee in employees) { employee.Treatments = employee.Treatments.Where(t => t.TreatmentDate == date.Date).ToArray(); if (!employee.Treatments.Any()) { continue; } DailyEmployeeReport report = new DailyEmployeeReport { Date = date, FirstName = employee.Firstname, LastName = employee.Lastname, NumberOfPatientsTreated = employee.Treatments.Count }; reports.Add(report); } return(reports); }
public async Task GetDailyReports_RequestDailyReports_ReturnsCorrectReports() { using (var context = GetInitializedUsersContext()) { var usersService = new Services.UsersService(context, new QueueApiServiceMock()); UsersController controller = new UsersController(usersService); DateTime yesterday = DateTime.Today.AddDays(-1); DailyEmployeeReport firstEmployee = new DailyEmployeeReport { Date = yesterday, FirstName = "Shay", LastName = "Musachanov", NumberOfPatientsTreated = 4 }; DailyEmployeeReport secondEmployee = new DailyEmployeeReport { Date = yesterday, FirstName = "Daniel", LastName = "Szuster", NumberOfPatientsTreated = 3 }; DailyEmployeeReport thirdEmployee = new DailyEmployeeReport { Date = yesterday, FirstName = "David", LastName = "Fineboym", NumberOfPatientsTreated = 2 }; ActionResult <List <DailyEmployeeReport> > result = await controller.GetDailyReports(yesterday); Assert.IsInstanceOf <ActionResult <List <DailyEmployeeReport> > >(result); Assert.IsInstanceOf <List <DailyEmployeeReport> >(result.Value); List <DailyEmployeeReport> reports = result.Value; Assert.AreEqual(firstEmployee, reports.Find(e => e.FirstName == firstEmployee.FirstName)); Assert.AreEqual(secondEmployee, reports.Find(e => e.FirstName == secondEmployee.FirstName)); Assert.AreEqual(thirdEmployee, reports.Find(e => e.FirstName == thirdEmployee.FirstName)); } }