public void AddProject(string[] skills) { if (string.IsNullOrEmpty(Name) || Name[0] == ' ') throw new Exception("Name can't be empty or start from space"); if (ProjectVM.Order == null) throw new Exception("Order was deleted"); if (ReleaseDate < StartDate) throw new Exception("Release date can't be before stat date"); ////if (Status == Project.Statuses.InProgress && SelectedLeader == null) ////{ //// throw new Exception("Module or project must contain leader"); ////} if (_project == null) { _project.Name = Name; _project.Description = Description; _project.StartDate = StartDate; _project.ReleaseDate = ReleaseDate; _project.Order = ProjectVM.Order; _project.StatusType = Status; if (SelectedLeader != null) _project.Leader = _selectedLeader.User; Project.Items.Add(_project); Project_Project p = new Project_Project() { ParrentProject = _parentProject?.Project, ChildProject = _project }; Project_Project.Items.Add(p); foreach (var item in _savedPositions) { Users_Project user_project = new Users_Project() { Position = item.Position, Project = _project, User = item.User }; Users_Project.Items.Add(user_project); } foreach (var item in TeamsCollection) { Team_Project.Items.Add(new Team_Project() { Project = _project, Team = item.Team }); } } else { Guid id = _project.Id; Users_Project.Items.RemoveAll(item => item.Project.Id == id); Project_Project.Items.Remove(Project_Project.Items.FirstOrDefault(item => item.ChildProject.Id == _project.Id)); Projects_Skill.Items.RemoveAll(item => item.Project.Id == id); Team_Project.Items.RemoveAll(item => item.Project.Id == _project.Id); Project.Items.Remove(Project.Items.FirstOrDefault(item => item.Id == _project.Id)); _project = new Project(); _project.Id = id; _project.Name = Name; _project.Description = Description; if (SelectedLeader != null && SelectedLeader.User != null) _project.Leader = _selectedLeader.User; _project.StartDate = StartDate; _project.ReleaseDate = ReleaseDate; _project.Order = ProjectVM.Order; _project.StatusType = Status; Users_Project.Items.RemoveAll(item => item.Project.Id == id); foreach (var item in _savedPositions) { Users_Project user_project = new Users_Project() { Position = item.Position, Project = _project, User = item.User }; Users_Project.Items.Add(user_project); } Project.Items.Add(_project); Project_Project.Items.Add(new Project_Project() { ChildProject = _project, ParrentProject = _parentProject?.Project }); foreach (var item in TeamsCollection) { Team_Project.Items.Add(new Team_Project() { Project = _project, Team = item.Team }); } } foreach (var item in skills) { Projects_Skill project_skill = new Projects_Skill() { Project = _project, Skill = Skill.Items.FirstOrDefault(skill => skill.Name == item) }; Projects_Skill.Items.Add(project_skill); } LoadData(); SaveButton = true; }
public User_ProjectVM(Users_Project userProject) { _userProject = userProject; }