private TestEventRepository CreateFilledEventRepository(TestUserRepository userRepo) { var repo = CreateTestEventRepository(); var users = userRepo.GetUsersByRole(RoleType.Manager); var @event = CreateEvent(new TGuid(0).ToGuid().ToString()); @event.Id = 1; repo.Events.Add(@event); var workEvent = CreateEvent(new TGuid(2).ToGuid().ToString()); workEvent.Id = 2; repo.Events.Add(workEvent); foreach (var user in users) { repo.EventsUsers.Add(new WorkEventUserRelation(@event.Id, user.Id) { State = EventState.New }); repo.EventsUsers.Add(new WorkEventUserRelation(workEvent.Id, user.Id) { State = EventState.Seen }); } return(repo); }
private static void AddPartitionsForStage(WorkItem stage, TestWorkItemRepository workItemRepo, TestUserRepository userRepo, List <ApplicationUser> managers, ApplicationUser mainEngeneer) { var executors = userRepo.GetUsersByRole(Resources.Executor).Except(userRepo.GetUsersByRole(Resources.MainProjectEngineer)).ToList(); for (int i = 0; i < managers.Count; i++) { var states = new List <WorkItemState> { WorkItemState.AtWork, WorkItemState.Planned, WorkItemState.Done, WorkItemState.New }; foreach (var state in states) { var partition = CreateWorkItem(workItemRepo.WorkItems, states.IndexOf(state), WorkItemType.Partition, mainEngeneer, managers[i], state); partition.ParentId = stage.Id; workItemRepo.WorkItems.Add(partition); AddTasksForPartition(partition, workItemRepo, managers[i], executors); } } }
private static void AddStagesForProject(WorkItem project, TestWorkItemRepository workItemRepo, TestUserRepository userRepo, List <ApplicationUser> mainEngeneers, ApplicationUser mainEngeneer) { var managers = userRepo.GetUsersByRole(Resources.Manager).ToList(); for (int i = 0; i < 2; i++) { var stage = CreateWorkItem(workItemRepo.WorkItems, i, WorkItemType.Stage, mainEngeneer, mainEngeneer, WorkItemState.AtWork); stage.ParentId = project.Id; workItemRepo.WorkItems.Add(stage); AddPartitionsForStage(stage, workItemRepo, userRepo, managers, mainEngeneer); } }
/// <summary> /// СОздание тестовых рабочих элементов. Для каждого ГИП по проекту. В каждом проекте - 2 стадии /// В каждой стадии по 4 раздела для каждого РН. В каждом разделе: /// Если раздел не в работе, то по заданию для каждого исполнителя в том же состоянии, что и раздел. /// Если раздел в работе, то по 10 заданий для каждого исполнителя в разных состояниях (на одно состояние одно задание, созданное РН /// и одно задание созданное самим исполнителем) Задания со статусом новые - без исполнителя. /// </summary> /// <param name="userRepo"></param> /// <returns></returns> public static TestWorkItemRepository CreateFilledWorkItemRepository(TestUserRepository userRepo) { var workItemRepository = new TestWorkItemRepository(userRepo); var mainEngeneers = userRepo.GetUsersByRole(Resources.MainProjectEngineer).ToList(); for (int i = 0; i < mainEngeneers.Count; i++) { var project = CreateWorkItem(workItemRepository.WorkItems, i, WorkItemType.Project, mainEngeneers[i], mainEngeneers[i], WorkItemState.AtWork); workItemRepository.WorkItems.Add(project); AddStagesForProject(project, workItemRepository, userRepo, mainEngeneers, mainEngeneers[i]); } return(workItemRepository); }