Example #1
0
        public async Task ExpelMemberAsync(UserAndOrganizationDto userAndOrg, int projectId, string expelUserId)
        {
            var project = await _projectsDbSet
                          .Include(x => x.Members)
                          .FirstOrDefaultAsync(x => x.Id == projectId && x.OrganizationId == userAndOrg.OrganizationId);

            await ValidateExpelMemberAsync(project, userAndOrg);

            project?.Members.Remove(project.Members.FirstOrDefault(x => x.Id == expelUserId));

            if (project != null)
            {
                await _wallService.RemoveMemberFromWallAsync(expelUserId, project.WallId);
            }

            await _uow.SaveChangesAsync(userAndOrg.UserId);
        }