Exemple #1
0
        public void UpdateSubTask(SubTask iSubTask)
        {
            if (iSubTask == null)
            {
                throw new Exception("La sous tâche est null");
            }
            if (iSubTask.SubTaskId < 1)
            {
                throw new Exception("L'id de la sous tâche est invalide");
            }

            //Vérification que le projet est toujours le même
            var originalSubTask = DBReleaseDataService.GetSubTask(iSubTask.SubTaskId);

            if (originalSubTask.ProjectGUID != iSubTask.ProjectGUID)
            {
                throw new Exception("Le projet d'une tâche de projet ne peut pas être modifiée");
            }

            //Validation des conditions
            var mainTask = GetMainTaskById(iSubTask.MainTaskId, Library.Tools.Enums.GranularityEnum.Nude);

            if (mainTask.Status != EquinoxeExtend.Shared.Enum.MainTaskStatusEnum.Dev && iSubTask.Progression != 0)
            {
                throw new Exception("L'avancement d'un sous tâche requiert que la tâche soit en cours");
            }

            var entity = new T_E_SubTask();

            entity.Merge(iSubTask);
            DBReleaseDataService.UpdateSubTask(entity);
        }
Exemple #2
0
        public long AddSubTask(SubTask iSubTask)
        {
            if (iSubTask == null)
            {
                throw new Exception("La sous tâche est nulle");
            }

            //Validation des conditions
            var mainTask = GetMainTaskById(iSubTask.MainTaskId, Library.Tools.Enums.GranularityEnum.Nude);

            if (mainTask.Status != EquinoxeExtend.Shared.Enum.MainTaskStatusEnum.Dev && iSubTask.Progression != 0)
            {
                throw new Exception("L'avancement d'une sous tâche requiert que la tâche soit en cours");
            }

            if (mainTask.Status != EquinoxeExtend.Shared.Enum.MainTaskStatusEnum.Dev &&
                mainTask.Status != EquinoxeExtend.Shared.Enum.MainTaskStatusEnum.Waiting)
            {
                throw new Exception("L'ajout d'une sous tâche n'est pas possible pour ce status de tâche");
            }

            //Validation des superpositions de package
            if (iSubTask.ProjectGUID != null)
            {
                if (!IsProjectCanJoinThisMainTask(mainTask.MainTaskId, (Guid)iSubTask.ProjectGUID))
                {
                    throw new Exception("Ce projet est déjà utilisé dans une tâche en cours");
                }
            }

            var entity = new T_E_SubTask();

            entity.Merge(iSubTask);
            return(DBReleaseDataService.AddSubTask(entity));
        }