public async Task <IntegrationClientRefreshResponse> RefreshIntegrationClient(IntegrationClientRefreshRequest request) { var response = new IntegrationClientRefreshResponse(); var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId); if (!currentUser.IsAdmin) { response.SetInvalid(); return(response); } if (await _organizationRepository.Any(x => x.Id == currentUser.OrganizationId && !x.IsActive)) { response.SetInvalidBecauseNotActive("organization"); return(response); } var integrationClient = await _integrationClientRepository.Select(x => x.Uid == request.IntegrationClientUid); if (integrationClient.IsNotExist()) { response.SetInvalidBecauseNotFound("integration_client"); return(response); } if (integrationClient.OrganizationId != currentUser.OrganizationId) { response.SetInvalid(); return(response); } var integration = await _integrationRepository.SelectById(integrationClient.IntegrationId); if (integration.IsNotExist()) { response.SetInvalidBecauseNotFound("integration"); return(response); } if (!integration.IsActive || !integrationClient.IsActive) { response.SetInvalidBecauseNotActive("integration"); return(response); } _integrationClientFactory.UpdateEntityForRefresh(integrationClient); await _integrationClientRepository.Update(request.CurrentUserId, integrationClient); response.Item = _integrationClientFactory.CreateDtoFromEntity(integrationClient); response.Status = ResponseStatus.Success; return(response); }