public void DeleteUserFromProjectsShare(Project project, ApplicationUser user) { if (project == null) { throw new ArgumentNullException(nameof(project)); } if (user == null) { throw new ArgumentNullException(nameof(user)); } using (var unitOfWork = _unitOfWorkFactory.GetUnitOfWork()) { var projectsShare = unitOfWork.ProjectsShares.GetAll() .FirstOrDefault(c => c.ProjectId.Equals(project.ProjectID) && c.UserId.Equals(user.Id)); if (projectsShare != null) { unitOfWork.ProjectsShares.Delete(projectsShare); unitOfWork.Save(); } } }
public void AddUserToProjectsShare(Project project, ApplicationUser user, int userRole, ApplicationUser fromUser = null) { if (project == null) { throw new ArgumentNullException(nameof(project)); } if (user == null) { throw new ArgumentNullException(nameof(user)); } if (userRole < UserRoleProjectsShareConstants.Invited && userRole > UserRoleProjectsShareConstants.Owner) { throw new ArgumentNullException(nameof(userRole)); } using (var unitOfWork = _unitOfWorkFactory.GetUnitOfWork()) { var projectsShare = unitOfWork.ProjectsShares.GetAll().FirstOrDefault(c => c.ProjectId.Equals(project.ProjectID) && c.UserId.Equals(user.Id)); if (projectsShare != null) { if (projectsShare.UserRole > UserRoleProjectsShareConstants.Invited) { throw new ArgumentException("User exists in projects share."); } projectsShare.UserRole = userRole; unitOfWork.ProjectsShares.Update(projectsShare); } else { var newprojectsShare = new ProjectsShare { ProjectId = project.ProjectID, UserId = user.Id, UserRole = userRole }; if (fromUser != null) { newprojectsShare.FromUserId = fromUser.Id; } unitOfWork.ProjectsShares.Create(newprojectsShare); } unitOfWork.Save(); } }
public void SaveProject(Project project) { if (project == null) { throw new ArgumentNullException(nameof(project)); } using (var unitOfWork = _unitOfWorkFactory.GetUnitOfWork()) { if (project.ProjectID == 0) unitOfWork.Projects.Create(project); else unitOfWork.Projects.Update(project); unitOfWork.Save(); } }
public void AddEmailToProjectsShare(Project project, string email) { if (project == null) { throw new ArgumentNullException(nameof(project)); } if (string.IsNullOrWhiteSpace(email)) { throw new ArgumentException("Empty email."); } using (var unitOfWork = _unitOfWorkFactory.GetUnitOfWork()) { var projectsShare = unitOfWork.ProjectsShares.GetAll().FirstOrDefault(c => c.ProjectID.Equals(project.ProjectID) && c.SharedEmail.Equals(email)); if (projectsShare != null) { if (projectsShare.Delflag == DelflagConstants.UnactiveSet) { projectsShare.Delflag = DelflagConstants.ActiveSet; unitOfWork.ProjectsShares.Update(projectsShare); } else if (projectsShare.Delflag == DelflagConstants.ActiveSet) { throw new ArgumentException("Email exists in projects shares."); } } else { var newprojectsShare = new ProjectsShare { ProjectID = project.ProjectID, SharedEmail = email }; unitOfWork.ProjectsShares.Create(newprojectsShare); } unitOfWork.Save(); } }
private void ClickMethodSaveProject() { var project = new Project { ProjectName = MainWindowData.ProjectName, ProjectOwner = MainWindowData.ProjectOwner, ProjectDescription = MainWindowData.DescriptionProject }; _projectService.SaveProject(project); }
private void CreateProjectMethod() { var project = new Project { ProjectName = Name, ProjectOwner = MainWindowData.CurrentUser.Email, ProjectDescription = Summary }; _projectService.SaveProject(project); }
public IEnumerable<ApplicationUser> GetUsersForSharedProject(Project project) { if (project == null) { throw new ArgumentNullException(nameof(project)); } using (var unitOfWork = _unitOfWorkFactory.GetUnitOfWork()) { var projectUsers = GetProjectUsers(project).Select(p => p.Id).ToList(); return unitOfWork.Users.GetMany(x => !projectUsers.Contains(x.Id)); } }
public IEnumerable<ApplicationUser> GetProjectUsers(Project project) { if (project == null) { throw new ArgumentNullException(nameof(project)); } using (var unitOfWork = _unitOfWorkFactory.GetUnitOfWork()) { return unitOfWork.ProjectsShares.GetMany(p => p.ProjectId == project.ProjectID).Select(f => f.User).ToList(); } }