Beispiel #1
0
        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));
            }
        }