public async Task SubmitNotificationHubJobAsync()

in src/Microsoft.Azure.NotificationHubs/NamespaceManager.cs [471:510]


        public async Task<NotificationHubJob> SubmitNotificationHubJobAsync(NotificationHubJob job, string notificationHubPath, CancellationToken cancellationToken)
        {
            if (job == null)
            {
                throw new ArgumentNullException(nameof(job));
            }

            if (job.OutputContainerUri == null)
            {
                throw new ArgumentNullException(nameof(job.OutputContainerUri));
            }

            var requestUri = new UriBuilder(_baseUri)
            {
                Scheme = Uri.UriSchemeHttps,
                Path = $"{notificationHubPath}/jobs",
                Query = $"api-version={ManagementStrings.ApiVersion}"
            };
            var xmlBody = CreateRequestBody(job);

            return await _retryPolicy.RunOperation(async (ct) =>
            {
                using (var response = await SendAsync(() =>
                 {
                     var httpRequestMessage = CreateHttpRequest(HttpMethod.Post, requestUri.Uri);
                     httpRequestMessage.Content = new StreamContent(new MemoryStream(Encoding.UTF8.GetBytes(xmlBody)));

                     return httpRequestMessage;
                 }, ct).ConfigureAwait(false))
                {
                    var trackingId = string.Empty;
                    if (response.Headers.TryGetValues(TrackingIdHeaderKey, out var values))
                    {
                        trackingId = values.FirstOrDefault();
                    }
                    var xmlResponse = await GetXmlContent(response, trackingId).ConfigureAwait(false);
                    return GetModelFromResponse<NotificationHubJob>(xmlResponse, trackingId);
                };
            }, cancellationToken);
        }