public string CreateProject(Project newProject, Guid[] team, string milestones, string noAssignTasks, bool notifyManager, bool notifyResponsibles)
        {
            if (ProjectSecurity.CanCreateProject())
            {
                if (newProject != null)
                {
                    Global.EngineFactory.GetProjectEngine().SaveOrUpdate(newProject, notifyManager);
                    Global.EngineFactory.GetProjectEngine().AddToTeam(newProject,Global.EngineFactory.GetParticipantEngine().GetByID(newProject.Responsible), true);

                    //add team
                    foreach (var participant in team.Where(participant => participant != Guid.Empty))
                    {
                        Global.EngineFactory.GetProjectEngine().AddToTeam(newProject, Global.EngineFactory.GetParticipantEngine().GetByID(participant), true);
                    }

                    // add milestone
                    var listMilestones = MilestoneParser(milestones);

                    foreach (var milestone in listMilestones)
                    {
                        var milestoneTasks = TaskParser(milestone.Description);
                        milestone.Description = string.Empty;
                        milestone.Project = newProject;
                        Global.EngineFactory.GetMilestoneEngine().SaveOrUpdate(milestone, notifyResponsibles);

                        foreach (var task in milestoneTasks)
                        {
                            task.Status = TaskStatus.Open;
                            task.Milestone = milestone.ID;
                            task.Project = newProject;
                            Global.EngineFactory.GetTaskEngine().SaveOrUpdate(task, null, notifyResponsibles);
                        }
                    }

                    //add no assign tasks
                    
                    var listTasks = TaskParser(noAssignTasks);

                    foreach (var task in listTasks)
                    {
                        task.Project = newProject;
                        task.Status = TaskStatus.Open;
                        Global.EngineFactory.GetTaskEngine().SaveOrUpdate(task, null, notifyResponsibles);
                    }

                    return "?prjID=" + newProject.ID;
                }

            }

            return string.Empty;
        }
 Guid[] RemoveSourceCCAppId(Guid[] allIds, ICommand command)
 {
     if (command.CommandGeneratedByCostCentreApplicationId == Guid.Empty)
         return allIds;
     return allIds
         .Where(n => n != command.CommandGeneratedByCostCentreApplicationId)
         .Distinct()
         .ToArray();
 }
Exemple #3
0
 public void ValidateOutput(string[] cprNumbers, Guid?[] objectIds)
 {
     Assert.IsNotNull(objectIds, "Return value is null");
     Assert.AreEqual(cprNumbers.Length, objectIds.Length, "Return value length does not equal input length");
     foreach (var uuid in objectIds)
     {
         Assert.AreNotEqual(Guid.Empty, uuid, "UUID is empty");
         Assert.AreEqual(1, objectIds.Where((id) => id == uuid).Count(), "Repeated UUID : " + uuid.ToString());
     }
 }