public void DeletePackage(Package iPackage) { if (iPackage == null) { throw new Exception("Le package est null"); } var originalPackage = GetPackageById(iPackage.PackageId, GranularityEnum.Full); if (originalPackage == null) { throw new Exception("Le package est null"); } if (iPackage.Status != originalPackage.Status) { throw new Exception("La fonction n'est pas supportée pour le changement de statut"); } if (iPackage.Status != PackageStatusEnum.Waiting && iPackage.Status != PackageStatusEnum.Developpement) { throw new Exception("Le statut du package ne permet pas sa suppression"); } if (originalPackage.MainTasks.IsNotNullAndNotEmpty()) { throw new Exception("Le package ne doit pas contenir de tâche pour être supprimé"); } DBReleaseDataService.DeletePackage(originalPackage.PackageId); }