Esempio n. 1
0
        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>
 /// &lt;br&gt;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>
 /// &lt;br&gt;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());
 }