private PersonReport GetPersonReport(PersonWorkMonth personWorkMonth) { var tasksReport = new List<TaskReport>(); foreach (var day in personWorkMonth.WorkDays) { foreach (var task in day.Tasks) { var reportTask = new TaskReport { Task = task, WorkingHours = task.Hours.Value, Date = day.Date }; tasksReport.Add(reportTask); } } var personWorkDayReport = new PersonReport { Person = personWorkMonth.Person, ReportTasks = tasksReport }; return personWorkDayReport; }
public TimeSpan FullWorkTime(PersonWorkMonth personWorkMonth) { var result = TimeSpan.Zero; if (personWorkMonth.WorkDays == null) return result; foreach (var workDay in personWorkMonth.WorkDays) { result = result.Add(workDay.WorkingHours); } return result; }
public TimeSpan ActualWorkTime(PersonWorkMonth personWorkMonth) { var result = TimeSpan.Zero; if (personWorkMonth.PersonTasks == null) return result; foreach (var personTasks in personWorkMonth.PersonTasks) { if (personTasks.Hours != null) result = result.Add(personTasks.Hours.Value); } return result; }
public void FillWorkDays(PersonWorkMonth personWorkMonth) { var currentDate = new DateTime(personWorkMonth.Year, personWorkMonth.Month, 1); var workDays = GetWorkDays(personWorkMonth.Person.EmployeeCode, currentDate); if (workDays == null) { Trace.TraceWarning("Cannot get work days for {0}", personWorkMonth.Person.LastName); return; } foreach (var workDay in workDays) { var personWorkDay = personWorkMonth.WorkDays.FirstOrDefault(item => item.Date.Equals(workDay.Date)); if (personWorkDay == null) { personWorkMonth.WorkDays.Add(workDay); } } }
public PersonWorkMonth TimeManager_GetPersonWorkMonthWithoutData() { const int year = 2015; const int month = 11; var projects = new ProjectFactory().GetProjects(); var products = new ProductFactory().GetProducts(); var person = new PersonFactory().GetPersons(projects[0], products[0]); var personWorkMonth = new PersonWorkMonth { Person = person[0], Year = year, Month = month, PersonTasks = null, WorkDays = null }; return personWorkMonth; }
public PersonWorkMonth TimeManager_GetPersonWorkMonthWithData(int daysCount, int tasksCount) { var projects = new ProjectFactory().GetProjects(); var products = new ProductFactory().GetProducts(); var person = new PersonFactory().GetPersons(projects[0], products[0]); var workDaysFactory = new WorkDayFactory(); var tasksFactory = new TaskFactory(); var personWorkMonth = new PersonWorkMonth { Person = person[0], Year = Year, Month = Month, PersonTasks = tasksFactory.GetJiraTasks(tasksCount), WorkDays = workDaysFactory.GetWorkDays(Year, Month, daysCount) }; var timeManager = new PersonTimeManager(new TimeSpan(8, 0, 0)); personWorkMonth.PersonTasks = timeManager.GetPersonTasksWithTime(personWorkMonth.PersonTasks, personWorkMonth.WorkDays); return personWorkMonth; }
public void FillTasks(PersonWorkMonth personWorkMonth) { var tasks = GetTasks(personWorkMonth.Person.TaskQuery); var personJiraTasks = personWorkMonth.PersonTasks.Where(item => item is JiraPersonTask).ToList(); if (tasks == null) { Trace.TraceWarning("Cannot get tasks for {0}", personWorkMonth.Person.LastName); return; } foreach (var task in tasks) { var jiraTask = personJiraTasks.FirstOrDefault(item => item.Name == task.Name); if (jiraTask == null) { task.Project = personWorkMonth.Person.Project; task.WorkMonthId = personWorkMonth.Id; personWorkMonth.PersonTasks.Add(task); } } }
public void TimeManager_GetPersonTasksWithTime_NullableInput_ResultShouldBeNull() { var projects = new ProjectFactory().GetProjects(); var products = new ProductFactory().GetProducts(); var person = new PersonFactory().GetPersons(projects[0], products[0]); var personWorkMonth = new PersonWorkMonth { Person = person[0], Year = Year, Month = Month, PersonTasks = null, WorkDays = null, }; var timeManager = new PersonTimeManager(new TimeSpan(8, 0, 0)); var result = timeManager.GetPersonTasksWithTime(personWorkMonth.PersonTasks, personWorkMonth.WorkDays); Assert.IsNull(result); }