public async Task <IntegrationRestoreResponse> RestoreIntegration(IntegrationRestoreRequest request) { var response = new IntegrationRestoreResponse(); var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId); if (await _organizationRepository.Any(x => x.Id == currentUser.OrganizationId && !x.IsActive)) { response.SetInvalid(); return(response); } var integration = await _integrationRepository.Select(x => x.Uid == request.IntegrationUid); if (integration.IsNotExist()) { response.SetInvalidBecauseEntityNotFound(); response.InfoMessages.Add("integration_not_found"); return(response); } var revisions = await _integrationRepository.SelectRevisions(integration.Id); if (revisions.All(x => x.Revision != request.Revision)) { response.SetInvalidBecauseEntityNotFound(); response.InfoMessages.Add("revision_not_found"); return(response); } var result = await _integrationRepository.RestoreRevision(request.CurrentUserId, integration.Id, request.Revision); if (result) { response.Status = ResponseStatus.Success; return(response); } response.SetFailed(); return(response); }