Example #1
0
        public async Task DeleteAsync(Guid id)
        {
            var entity = await _projectMemberRepository.GetByIdAsync(id);

            if (entity == null)
            {
                throw new Exception("Project member not found");
            }
            _projectMemberRepository.Delete(entity);
            await _projectMemberRepository.SaveAsync();
        }
        public ActionResult DeleteConfirmed(int id)
        {
            var projectMember = _projectMemberRepository.Get(id);

            if (!DoIHaveAccessToProject(projectMember.ProjectId))
            {
                return(RedirectToAction("NotAuthorized", "Error", new { area = "" }));
            }

            _projectMemberRepository.Delete(projectMember);
            _unitOfWork.Commit();
            return(RedirectToAction("Details", "Projects", new { Id = projectMember.ProjectId }));
        }
Example #3
0
        private void SaveEditModel(ProjectEditModel model)
        {
            var project = model.Project;

            projectRepo.Save(project);
            var oldProjectMembers = projectMemberRepo.GetForProject(project.Id);

            foreach (var oldMember in oldProjectMembers)
            {
                if (model.ProjectMembers.All(p => p.Id != oldMember.Id))
                {
                    projectMemberRepo.Delete(oldMember);
                }
            }
            foreach (var newMember in model.ProjectMembers.Where(pm => pm.EmployeeId > 0))
            {
                projectMemberRepo.Save(newMember);
            }
        }
Example #4
0
        public async Task RemoveProjectMember(int projectId, int userId, int currentUserId = 0, CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();

            var projectMemberByProjectSpec = new ProjectMemberFilterSpecification(projectId, userId);
            var projectMember = await _projectMemberRepository.GetSingleBySpec(projectMemberByProjectSpec, cancellationToken);

            if (projectMember.ProjectMemberRoleId == MemberRole.OwnerId && currentUserId > 0)
            {
                var currentUserOwnerSpec = new ProjectMemberFilterSpecification(projectId, currentUserId, null, MemberRole.OwnerId);
                if (await _projectMemberRepository.CountBySpec(currentUserOwnerSpec) == 0)
                {
                    throw new RemoveProjectOwnerException(currentUserId);
                }
            }

            var projectMemberId = projectMember?.Id;

            if (projectMemberId > 0)
            {
                await _projectMemberRepository.Delete(projectMemberId.GetValueOrDefault(), cancellationToken);
            }
        }
Example #5
0
 public void Delete(int id)
 {
     projectMemberRepository.Delete(id);
 }