public void CreateProject(EProject newProject) { CheckTheEProjectData(newProject); Project proj = newProject.ToDbProject(); if (proj.Date_Create == default(DateTime)) { proj.Date_Create = DateTime.Now; } using (var context = _ContextGenerator.GenerateContext()) { SaveNewProjectInDB(proj, context); newProject.Id = proj.ID_Project; //Hardcoded load the admin Project_Role prRole = (from pr in context.Project_Role where pr.Is_Admin select pr).FirstOrDefault(); if (prRole == null) { throw new InvalidOperationException("An admin role for project not found."); } foreach (decimal userId in newProject.UserIds) { User_Project usProj = new User_Project() { ID_Project = proj.ID_Project, ID_User = userId, ID_Project_Role = prRole.ID_Project_Role }; KeepUserProject(proj.ID_Project, usProj, context); } } }
/// <summary>Method create new project.</summary> /// <param name="newProject">Model of project to save.</param> /// <exception cref="ArgumentNullException"/> /// <exception cref="ArgumentException"/> /// <exception cref="InvalidOperationException"/> /// <exception cref="InsertDbDataException"/> public void CreateProject(ProjectModel newProject) { CheckProjectModelArgs(newProject); IEnumerable <User> users = GetUsersByIds(newProject.Users.Select(u => u.Id)); Project proj = newProject.ProjectDetails.ToDbProject(); using (var context = _ContextGenerator.GenerateContext()) { SaveNewProjectInDB(proj, context); newProject.ProjectDetails.Id = proj.ID_Project; //Hardcoded load the admin Project_Role prRole = (from pr in context.Project_Role where pr.Is_Admin select pr).FirstOrDefault(); if (prRole == null) { throw new InvalidOperationException("An admin role for project not found."); } foreach (User user in users) { User_Project usProj = new User_Project() { ID_Project = proj.ID_Project, ID_User = user.ID_User, ID_Project_Role = prRole.ID_Project_Role }; KeepUserProject(proj.ID_Project, usProj, context); } } }