public void ChangeHistoryEndDateIfItsNotValidTest() { ParticipationHistoryService participationHistoryService = new ParticipationHistoryService(uow, new Map <ParticipationHistory, ParticipationHistoryDTO>()); EmployeeService employeeService = new EmployeeService(uow, new Map <Employee, EmployeeDTO>()); ProjectService projectService = new ProjectService(uow, new Map <Project, ProjectDTO>()); ProjectWorkService projectWorkService = new ProjectWorkService(uow, new Map <ProjectWork, ProjectWorkDTO>()); EmployeeDTO employee = new EmployeeDTO { EmployeeName = "Екатерина", EmployeeSurname = "Антонович", EmployeePatronymic = "Алексеевна", RoleId = 3, Email = "*****@*****.**", }; var employeeOnWork = employeeService.CreateEmployee(employee); var em = employeeService.GetEmployeeById(employeeOnWork.Id); ProjectDTO project = new ProjectDTO { ProjectName = "проект 1", ProjectDescription = "проект номер один", ProjectStartDate = new DateTimeOffset(2021, 10, 6, 10, 15, 35, new TimeSpan(3, 0, 0)), ProjectEndDate = new DateTimeOffset(2021, 11, 21, 10, 15, 35, new TimeSpan(3, 0, 0)) }; var proj = projectService.CreateProject(project); var pr = projectService.GetProjectById(proj.Id); ProjectWorkDTO projectWork = new ProjectWorkDTO { EmployeeId = em.Id, ProjectId = pr.Id, ProjectRoleId = 3 }; var pWork = projectWorkService.CreateProjectWork(projectWork); var prw = projectWorkService.GetProjectWorkById(pWork.Id); ParticipationHistoryDTO participationHistory = new ParticipationHistoryDTO { ProjectWorkId = prw.Id, StartDate = new DateTimeOffset(2021, 10, 16, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 21, 11, 15, 35, new TimeSpan(3, 0, 0)) }; var errors = phvalidator.Validate(participationHistory); var history = participationHistoryService.CreateHistory(participationHistory); var actual = participationHistoryService.GetHistoryById(history.Id); Assert.ThrowsException <InvalidDateException>(() => participationHistoryService.ChangeHistoryEndDate(actual.Id, new DateTimeOffset(2021, 9, 05, 10, 15, 35, new TimeSpan(3, 0, 0)))); participationHistoryService.DeleteHistoryById(actual.Id); projectWorkService.DeleteProjectWorkById(prw.Id); employeeService.DeleteEmployeeById(em.Id); projectService.DeleteProjectById(pr.Id); }
public List <ValidationResult> Validate(ParticipationHistoryDTO history) { List <ValidationResult> errors = new List <ValidationResult>(); if (history.ProjectWorkId == 0) { errors.Add(new ValidationResult("Не указан идентификатор участия в проекте", new List <string>() { "ProjectWorkId" })); } if (history.StartDate == null) { errors.Add(new ValidationResult("Не указана дата начала участия в проекте", new List <string>() { "StartDate" })); } if (history.EndDate == null) { errors.Add(new ValidationResult("Не указана дата окончания участия в проекте", new List <string>() { "EndDate" })); } if (history.EndDate < DateTimeOffset.Now) { errors.Add(new ValidationResult("Неверная дата", new List <string>() { "EndDate" })); } if (history.EndDate < history.StartDate) { errors.Add(new ValidationResult("Неверные даты", new List <string>() { "StartDate", "EndDate" })); } return(errors); }
public ParticipationHistoryDTO CreateHistory(ParticipationHistoryDTO historyDTO) { ProjectWork work = Database.ProjectWorks.GetProjectWorkById(historyDTO.ProjectWorkId); if (historyDTO.StartDate > historyDTO.EndDate) { throw new InvalidDateException(); } ParticipationHistory history = new ParticipationHistory { ProjectWorkId = historyDTO.ProjectWorkId, ProjectWork = work, StartDate = historyDTO.StartDate, EndDate = historyDTO.EndDate }; var hist = Database.ParticipationHistories.CreateHistory(history); Database.Save(); return(Map.ObjectMap(hist)); }
public void GetLastEmployeesHistoryTest() { ParticipationHistoryService participationHistoryService = new ParticipationHistoryService(uow, new Map <ParticipationHistory, ParticipationHistoryDTO>()); EmployeeService employeeService = new EmployeeService(uow, new Map <Employee, EmployeeDTO>()); ProjectService projectService = new ProjectService(uow, new Map <Project, ProjectDTO>()); ProjectWorkService projectWorkService = new ProjectWorkService(uow, new Map <ProjectWork, ProjectWorkDTO>()); EmployeeDTO employee = new EmployeeDTO { EmployeeName = "Екатерина", EmployeeSurname = "Антонович", EmployeePatronymic = "Алексеевна", RoleId = 3, Email = "*****@*****.**", }; var employeeOnWork = employeeService.CreateEmployee(employee); var em = employeeService.GetEmployeeById(employeeOnWork.Id); ProjectDTO project = new ProjectDTO { ProjectName = "проект 1", ProjectDescription = "проект номер один", ProjectStartDate = new DateTimeOffset(2021, 10, 6, 10, 15, 35, new TimeSpan(3, 0, 0)), ProjectEndDate = new DateTimeOffset(2021, 11, 21, 10, 15, 35, new TimeSpan(3, 0, 0)) }; var proj = projectService.CreateProject(project); var pr = projectService.GetProjectById(proj.Id); ProjectWorkDTO projectWork = new ProjectWorkDTO { EmployeeId = em.Id, ProjectId = pr.Id, ProjectRoleId = 3 }; var pWork = projectWorkService.CreateProjectWork(projectWork); var prw = projectWorkService.GetProjectWorkById(pWork.Id); ParticipationHistoryDTO participationHistory1 = new ParticipationHistoryDTO { ProjectWorkId = prw.Id, StartDate = new DateTimeOffset(2021, 10, 16, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 04, 11, 15, 35, new TimeSpan(3, 0, 0)) }; var errors = phvalidator.Validate(participationHistory1); var history1 = participationHistoryService.CreateHistory(participationHistory1); var actual1 = participationHistoryService.GetHistoryById(history1.Id); ParticipationHistoryDTO participationHistory2 = new ParticipationHistoryDTO { ProjectWorkId = prw.Id, StartDate = new DateTimeOffset(2021, 11, 05, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 21, 11, 15, 35, new TimeSpan(3, 0, 0)) }; var errors2 = phvalidator.Validate(participationHistory2); var history2 = participationHistoryService.CreateHistory(participationHistory2); var actual2 = participationHistoryService.GetHistoryById(history2.Id); var actual = participationHistoryService.GetLastEmployeesHistory(prw.Id); ParticipationHistoryDTO expected = new ParticipationHistoryDTO { Id = actual2.Id, ProjectWorkId = prw.Id, StartDate = new DateTimeOffset(2021, 11, 05, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 21, 11, 15, 35, new TimeSpan(3, 0, 0)) }; Assert.IsTrue(errors.Count == 0 && errors2.Count == 0 && actual.Id == expected.Id && actual.ProjectWorkId == expected.ProjectWorkId && actual.StartDate == expected.StartDate && actual.EndDate == expected.EndDate); participationHistoryService.DeleteHistoryById(actual1.Id); participationHistoryService.DeleteHistoryById(actual2.Id); projectWorkService.DeleteProjectWorkById(prw.Id); employeeService.DeleteEmployeeById(em.Id); projectService.DeleteProjectById(pr.Id); }
public void GetAllEmployeesHistoriesOnProjectTest() { ParticipationHistoryService participationHistoryService = new ParticipationHistoryService(uow, new Map <ParticipationHistory, ParticipationHistoryDTO>()); EmployeeService employeeService = new EmployeeService(uow, new Map <Employee, EmployeeDTO>()); ProjectService projectService = new ProjectService(uow, new Map <Project, ProjectDTO>()); ProjectWorkService projectWorkService = new ProjectWorkService(uow, new Map <ProjectWork, ProjectWorkDTO>()); EmployeeDTO employee = new EmployeeDTO { EmployeeName = "Екатерина", EmployeeSurname = "Антонович", EmployeePatronymic = "Алексеевна", RoleId = 3, Email = "*****@*****.**", }; var employeeOnWork = employeeService.CreateEmployee(employee); var em = employeeService.GetEmployeeById(employeeOnWork.Id); EmployeeDTO employee2 = new EmployeeDTO { EmployeeName = "Иван", EmployeeSurname = "Иванов", EmployeePatronymic = "Иванович", RoleId = 2, Email = "*****@*****.**", }; var employeeOnWork2 = employeeService.CreateEmployee(employee2); var em2 = employeeService.GetEmployeeById(employeeOnWork2.Id); ProjectDTO project = new ProjectDTO { ProjectName = "проект 1", ProjectDescription = "проект номер один", ProjectStartDate = new DateTimeOffset(2021, 10, 6, 10, 15, 35, new TimeSpan(3, 0, 0)), ProjectEndDate = new DateTimeOffset(2021, 11, 21, 10, 15, 35, new TimeSpan(3, 0, 0)) }; var proj = projectService.CreateProject(project); var pr = projectService.GetProjectById(proj.Id); ProjectWorkDTO projectWork = new ProjectWorkDTO { EmployeeId = em.Id, ProjectId = pr.Id, ProjectRoleId = 3 }; var pWork = projectWorkService.CreateProjectWork(projectWork); var prw = projectWorkService.GetProjectWorkById(pWork.Id); ProjectWorkDTO projectWork2 = new ProjectWorkDTO { EmployeeId = em2.Id, ProjectId = pr.Id, ProjectRoleId = 2 }; var pWork2 = projectWorkService.CreateProjectWork(projectWork2); var prw2 = projectWorkService.GetProjectWorkById(pWork2.Id); ParticipationHistoryDTO participationHistory1 = new ParticipationHistoryDTO { ProjectWorkId = prw.Id, StartDate = new DateTimeOffset(2021, 10, 16, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 04, 11, 15, 35, new TimeSpan(3, 0, 0)) }; var errors = phvalidator.Validate(participationHistory1); var history1 = participationHistoryService.CreateHistory(participationHistory1); var actual1 = participationHistoryService.GetHistoryById(history1.Id); ParticipationHistoryDTO participationHistory2 = new ParticipationHistoryDTO { ProjectWorkId = prw.Id, StartDate = new DateTimeOffset(2021, 11, 05, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 21, 11, 15, 35, new TimeSpan(3, 0, 0)) }; var errors2 = phvalidator.Validate(participationHistory2); var history2 = participationHistoryService.CreateHistory(participationHistory2); var actual2 = participationHistoryService.GetHistoryById(history2.Id); ParticipationHistoryDTO participationHistory3 = new ParticipationHistoryDTO { ProjectWorkId = prw2.Id, StartDate = new DateTimeOffset(2021, 11, 05, 10, 15, 35, new TimeSpan(3, 0, 0)), EndDate = new DateTimeOffset(2021, 11, 21, 11, 15, 35, new TimeSpan(3, 0, 0)) }; var errors3 = phvalidator.Validate(participationHistory3); var history3 = participationHistoryService.CreateHistory(participationHistory3); var actual3 = participationHistoryService.GetHistoryById(history3.Id); var actual = participationHistoryService.GetAllEmployeesHistoriesOnProject(prw.Id).ToList(); Assert.AreEqual(actual.Count, 2); participationHistoryService.DeleteHistoryById(actual1.Id); participationHistoryService.DeleteHistoryById(actual2.Id); participationHistoryService.DeleteHistoryById(actual3.Id); projectWorkService.DeleteProjectWorkById(prw.Id); projectWorkService.DeleteProjectWorkById(prw2.Id); employeeService.DeleteEmployeeById(em.Id); employeeService.DeleteEmployeeById(em2.Id); projectService.DeleteProjectById(pr.Id); }