public async Task <IntegrationCreateResponse> CreateIntegration(IntegrationCreateRequest request) { var response = new IntegrationCreateResponse(); 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); } if (await _integrationRepository.Any(x => x.Name == request.Name && x.OrganizationId == currentUser.OrganizationId)) { response.SetFailedBecauseNameMustBeUnique("integration"); return(response); } var entity = _integrationFactory.CreateEntityFromRequest(request, currentUser.Organization); await _integrationRepository.Insert(request.CurrentUserId, entity); response.Item = _integrationFactory.CreateDtoFromEntity(entity); response.Status = ResponseStatus.Success; return(response); }