Пример #1
0
        public async Task <Integration> CreateIntegrationAsync(ProviderRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            IIntegrationSystemService integrationSystemService = _integrationSystemServices.GetService(request.Provider);
            ProviderResult            creationResult           = await integrationSystemService.CreateIntegrationAsync(request);

            Integration integration = await _integrationRepository.CreateIntegrationAsync(
                _operationContext.UserId,
                creationResult.Provider,
                creationResult.ProviderUserId,
                creationResult.Data);

            await _eventPublisher.PublishAsync(CreateIntegrationCreatedEvent(integration));

            return(integration);
        }