Ejemplo n.º 1
0
        public override async Task <RemoveUserFromDomainResponse> RemoveUserFromDomain(RemoveUserFromDomainRequest request, ServerCallContext context)
        {
            var domain = await dbContext.Domains.FindIfNullThrowAsync(request.DomainId);

            var user = await dbContext.Users.FindIfNullThrowAsync(request.UserId);

            var assignment = await dbContext.UserDomainAssignments.FirstIfNotNullThrowAsync(x => x.Domain == domain && x.User == user);

            dbContext.UserDomainAssignments.Remove(assignment);

            await dbContext.SaveChangesAsync();

            return(new RemoveUserFromDomainResponse {
            });
        }
Ejemplo n.º 2
0
        public override async Task <RemoveUserFromDomainResponse> RemoveUserFromDomain(RemoveUserFromDomainRequest request, ServerCallContext context)
        {
            var domain = await dbContext.Domains.FindIfNullThrowAsync(request.DomainId);

            var user = await dbContext.Users.FindIfNullThrowAsync(request.UserId);

            // remove the domain assignment
            var domainAssignment = await dbContext.UserDomainAssignments
                                   .FirstOrDefaultAsync(x => x.Domain == domain && x.User == user)
                                   ?? throw EntityNotFoundException.Create <UserDomainAssignment>($"DomainId {request.DomainId} and UserId {request.UserId}");

            dbContext.UserDomainAssignments.Remove(domainAssignment);

            // remove the project assignment
            var projectAssignments = dbContext.UserProjectAssignments
                                     .Where(x => x.Project.Domain == domain && x.User == user);

            dbContext.UserProjectAssignments.RemoveRange(projectAssignments);

            await dbContext.SaveChangesAsync();

            return(new RemoveUserFromDomainResponse {
            });
        }