private WorkItem CreateWorkItem(TestWorkItemRepository repository, string userId, string parentItemExecutor)
 {
     return(new WorkItem
     {
         Name = "test",
         Description = "test",
         CreatorId = userId,
         ParentId = repository.WorkItems.First(x => x.Type == WorkItemType.Partition && x.State == WorkItemState.AtWork && x.ExecutorId == parentItemExecutor).Id,
         DeadLine = DateTime.Today,
         Type = WorkItemType.Task
     });
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        private static void AddTasksForUser(int partitionId, int number, TestWorkItemRepository workItemRepo, ApplicationUser creator, ApplicationUser executor)
        {
            var states = new List <WorkItemState> {
                WorkItemState.AtWork, WorkItemState.New, WorkItemState.Planned, WorkItemState.Reviewing, WorkItemState.Done
            };

            foreach (var state in states)
            {
                var task = CreateWorkItem(workItemRepo.WorkItems, partitionId * 31 + number * 5 + (states.IndexOf(state) + 1), WorkItemType.Task, creator, executor, state);
                if (state == WorkItemState.New)
                {
                    task.ExecutorId = null;
                }
                task.ParentId = partitionId;
                workItemRepo.WorkItems.Add(task);
            }
        }
Ejemplo n.º 5
0
 private static void AddTasksForPartition(WorkItem partition, TestWorkItemRepository workItemRepo, ApplicationUser manager, List <ApplicationUser> executors)
 {
     for (var i = 0; i < executors.Count; i++)
     {
         if (partition.State != WorkItemState.AtWork)
         {
             var task = CreateWorkItem(workItemRepo.WorkItems, i, WorkItemType.Task, manager, executors[i], partition.State);
             task.ParentId = partition.Id;
             workItemRepo.WorkItems.Add(task);
         }
         else
         {
             AddTasksForUser(partition.Id, i, workItemRepo, manager, executors[i]);
             AddTasksForUser(partition.Id, i + executors.Count + 2, workItemRepo, executors[i], executors[i]);
         }
     }
 }
Ejemplo n.º 6
0
        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);
                }
            }
        }