Пример #1
0
        /// <summary>
        /// Makes a request to the API.
        /// </summary>
        /// <param name="requestData">The API request data.</param>
        /// <returns>
        /// An API response data object.
        /// </returns>
        public async Task <ApiResponseDto> MakeApiRequest(ApiRequestDto requestData)
        {
            var httpClient = new HttpClient();

            var url = BuildUrl(requestData.Host, requestData.Version, requestData.EndpointId, requestData.ApiKey,
                               requestData.Ssl);

            switch (requestData.Verb)
            {
            case HttpVerb.Get:
            {
                return(await ProcessApiResponse(await httpClient.GetAsync(url)));
            }

            case HttpVerb.Post:
            {
                var httpContent = new StringContent(requestData.FilterXml, Encoding.UTF8, "application/xml");
                return(await ProcessApiResponse(await httpClient.PostAsync(url, httpContent)));
            }

            default:
            {
                throw new ArgumentException("Invalid HTTP Verb.");
            }
            }
        }
 public AnsibleTowerInstance(string name, string circuitBreakerName, string apiUrlBase, string version, ApiRequestDto apiRequestDto)
 {
     ApiDefinition      = apiRequestDto;
     Name               = name;
     CircuitBreakerName = circuitBreakerName;
     ApiUrlBase         = apiUrlBase;
     Version            = version;
 }
Пример #3
0
        public async Task <IActionResult> HandleInputRequest(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = "input")] ApiRequestDto input,
            HttpRequest req,
            [DurableClient] IDurableOrchestrationClient orchestrationClient)
        {
            var instanceId = await orchestrationClient.StartNewAsync(nameof(RequestProcessorDurableFunctions.HandleRequest), input);

            return(orchestrationClient.CreateCheckStatusResponse(req, instanceId));
        }
Пример #4
0
 public AnsibleTowerInstance(string name, string circuitBreakerName, string apiUrlBase, string version, ApiRequestDto apiRequestDto, string username, string password)
 {
     ApiDefinition      = apiRequestDto;
     Name               = name;
     CircuitBreakerName = circuitBreakerName;
     ApiUrlBase         = apiUrlBase;
     Version            = version;
     Username           = username;
     Password           = password;
 }
Пример #5
0
        /// <summary>
        /// Click Event Handler for the Send Request button.
        /// </summary>
        /// <param name="sender">The control raising the event.</param>
        /// <param name="e">The event data.</param>
        private async void btnSendRequest_Click(object sender, EventArgs e)
        {
            try
            {
                //Show wait cursor and disable Send Request button.
                Cursor.Current         = Cursors.WaitCursor;
                btnSendRequest.Enabled = false;

                //Populate request DTO to send to request service.
                var apiRequest = new ApiRequestDto
                {
                    ApiKey     = txtApiKey.Text,
                    EndpointId = (int)cmbEndpoint.SelectedValue,
                    Verb       = (HttpVerb)cmbHttpVerb.SelectedItem,
                    Version    = cmbApiVersion.Text,
                    Host       = txtHost.Text,
                    Ssl        = chkUseSsl.Checked,
                    FilterXml  = txtFilterXML.Text
                };

                //Call request service to make API request.
                var apiResponse = await _requestService.MakeApiRequest(apiRequest);

                //Process API response in response form.
                _responseForm.ProcessResponse(apiResponse);

                //Show response form.
                _responseForm.ShowDialog(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                //Show default cursor and enable Send Request button.
                Cursor.Current         = Cursors.Default;
                btnSendRequest.Enabled = true;
            }
        }