private async Task CreateApaleoIntegrationAsync(ApaleoIntegrationTarget integrationTarget) { var integrationApi = _apaleoClientsFactory.GetIntegrationApi(); var integrationUrl = _apaleoIntegrationTargetsUrlDictionary[integrationTarget].ToString(); var integrationIconUrl = _integrationConfig.Value.IntegrationIconUri.Match( v => v.ToString(), () => string.Empty); var createUiIntegrationModel = new CreateUiIntegrationModel { Code = _integrationConfig.Value.DefaultIntegrationCode, Label = _integrationConfig.Value.IntegrationLabel, IconSource = integrationIconUrl, SourceType = AppConstants.IntegrationSourceType, SourceUrl = integrationUrl }; using (var responseResult = await integrationApi.IntegrationUiIntegrationsByTargetPostWithHttpMessagesAsync(integrationTarget.ToString("G"), createUiIntegrationModel)) { if (!responseResult.Response.IsSuccessStatusCode && !await IntegrationExistsAsync(integrationTarget)) { var content = await responseResult.Response.Content.ReadAsStringAsync(); throw new BusinessValidationException( $"Failed to create integration with {nameof(integrationApi.IntegrationUiIntegrationsByTargetPostWithHttpMessagesAsync)} with status code: {responseResult.Response.StatusCode} and content: {content}"); } } }
/// <summary> /// <br>Scopes required: 'integration:ui-integrations.manage'. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='target'> /// Possible values include: 'DashboardPropertyContext', /// 'DashboardAccountContext', 'ReservationDetailsTab', 'PropertyMenuReports', /// 'PropertyMenuApps', 'AccountMenuApps', 'CompanyDetailsTab' /// </param> /// <param name='createUiIntegrationModel'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <object> IntegrationUiIntegrationsByTargetPostAsync(this IIntegrationApi operations, string target, CreateUiIntegrationModel createUiIntegrationModel, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.IntegrationUiIntegrationsByTargetPostWithHttpMessagesAsync(target, createUiIntegrationModel, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// <br>Scopes required: 'integration:ui-integrations.manage'. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='target'> /// Possible values include: 'DashboardPropertyContext', /// 'DashboardAccountContext', 'ReservationDetailsTab', 'PropertyMenuReports', /// 'PropertyMenuApps', 'AccountMenuApps', 'CompanyDetailsTab' /// </param> /// <param name='createUiIntegrationModel'> /// </param> public static object IntegrationUiIntegrationsByTargetPost(this IIntegrationApi operations, string target, CreateUiIntegrationModel createUiIntegrationModel) { return(operations.IntegrationUiIntegrationsByTargetPostAsync(target, createUiIntegrationModel).GetAwaiter().GetResult()); }