public Report GenerateReport(List<PersonWorkMonth> personWorkMonths, IPersonTimeManager personTimeManager)
        {
            var report = new Report();
            foreach (var personWorkMonth in personWorkMonths)
            {
                if (personWorkMonth.PersonTasks.Count == 0)
                {
                    report.Errors.Add(new NoTasksReportError(personWorkMonth.Person));
                }

                if (personWorkMonth.WorkDays.Count == 0)
                {
                    report.Errors.Add(new NoDaysReportError(personWorkMonth.Person));
                }

                report.Errors.Add(new NoTasksReportError(personWorkMonth.Person));
                report.Errors.Add(new NoDaysReportError(personWorkMonth.Person));

                personWorkMonth.WorkDays = personTimeManager.GetWorkDaysWithTasks(personWorkMonth.PersonTasks, personWorkMonth.WorkDays);

                var personReport = GetPersonReport(personWorkMonth);
                report.PersonReports.Add(personReport);
            }

            return report;
        }
 public HomeController(IUnitOfWork uow, IReportFormatter reportFormatter, IReportGenerator reportGenerator, IPersonTimeManager personTimeManager)
 {
     _uow = uow;
     _reportFormatter = reportFormatter;
     _reportGenerator = reportGenerator;
     _personTimeManager = personTimeManager;
     _dataMapper = new ViewDataMapper();
 }
 public PersonTaskController(IUnitOfWork uow, IPersonTimeManager personTimeManager)
 {
     _uow = uow;
     _personTimeManager = personTimeManager;
     _dataMapper = new ViewDataMapper();
     _timeZoneHelper = new TimeZoneHelper();
     _dayStart = TimeSpan.Parse(ConfigurationManager.AppSettings["StartWorkDayUtcTime"]);
     _normalWorkTime = TimeSpan.FromHours(8);
 }
 public ReportGeneratorWrapper(IUnitOfWork uow, IReportGenerator reportGenerator, IPersonTimeManager personTimeManager)
 {
     _uow = uow;
     _reportGenerator = reportGenerator;
     _personTimeManager = personTimeManager;
 }