public async Task <Environment> GetEnvironment(EnvironmentArgumentCommand request, EnvironmentRole requiredRole, CancellationToken cancellationToken) { UsersEnvironments env = await GetEnvironment(request, cancellationToken); await _securityService.CheckEntityAcces(env.Environment, requiredRole); return(env.Environment); }
public async Task <UsersEnvironments> GetEnvironment(EnvironmentArgumentCommand request, CancellationToken cancellationToken) { AccessCardOfUser card = await _securityService.GetUserCard(); var result = await(from app in _configContext.UsersApplications.Include(i => i.Application).Where(w => w.Application.Code.Equals(request.ApplicationCode) && w.UserId.Equals(card.UserId)) join env in _configContext.UsersEnvironments.Include(i => i.Environment) on app.ApplicationId equals env.Environment.ApplicationId into userEnv from environmentAccess in userEnv.DefaultIfEmpty() where environmentAccess.Environment.Code.Equals(request.EnvironmentCode) && environmentAccess.UserId.Equals(card.UserId) select new { appId = app.ApplicationId, env = environmentAccess }).FirstOrDefaultAsync(cancellationToken); request.ThrowNotFoundExceptionWhenValueIsNull(result); return(result.env); }