Exemple #1
0
        /// <summary>
        /// Build the Uri for issuing the request for the specified wit model.
        /// </summary>
        /// <param name="model"> The wit model.</param>
        /// <returns> The request Uri.</returns>
        public Uri BuildUri(IWitModel model)
        {
            if (SessionId == null)
            {
                throw new ValidationException(ValidationRules.CannotBeNull, "session id");
            }

            var queryParameters = new List <string>();

            queryParameters.Add($"session_id={Uri.EscapeDataString(SessionId)}");
            queryParameters.Add($"q={Uri.EscapeDataString(Query)}");
            UriBuilder builder;

            switch (model.ApiVersion)
            {
            case WitApiVersion.Standard:
                builder = new UriBuilder(model.UriBase);
                break;

            default:
                throw new ArgumentException($"{model.ApiVersion} is not a valid Wit api version.");
            }

            builder.Query = string.Join("&", queryParameters);
            return(builder.Uri);
        }
Exemple #2
0
        private Uri BuildUri(IWitModel model)
        {
            if (ThreadId == null)
            {
                throw new ValidationException(ValidationRules.CannotBeNull, "thread id");
            }

            var queryParameters = new List <string>
            {
                $"thread_id={Uri.EscapeDataString(ThreadId)}"
            };

            if (!string.IsNullOrEmpty(Query))
            {
                queryParameters.Add($"q={Uri.EscapeDataString(Query)}");
            }

            if (!string.IsNullOrEmpty(Context))
            {
                queryParameters.Add($"context={Uri.EscapeDataString(Context)}");
            }

            var builder = new UriBuilder(model.UriBase)
            {
                Query = string.Join("&", queryParameters)
            };


            return(builder.Uri);
        }
        public async Task <WitResult> QueryAsync(IDialogContext context, IWitRequest request, CancellationToken token)
        {
            IWitModel model = _model;

            if (_modelProvider != null)
            {
                model = await _modelProvider.GetWitModelAsync(context);
            }

            var httpRequest = BuildRequest(request, model);

            return(await QueryAsync(httpRequest, token));
        }
Exemple #4
0
        /// <summary>
        /// Build the Uri for issuing the request for the specified wit model.
        /// </summary>
        /// <param name="model"> The wit model.</param>
        /// <returns> The request Uri.</returns>
        public HttpRequestMessage BuildRequest(IWitModel model)
        {
            if (model.AuthToken == null)
            {
                throw new ValidationException(ValidationRules.CannotBeNull, "Authorization Token");
            }

            var request = new HttpRequestMessage()
            {
                RequestUri = BuildUri(model),
                Method     = HttpMethod.Get,
            };

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", model.AuthToken);

            return(request);
        }
Exemple #5
0
 /// <summary>
 /// Construct the wit service using the model information.
 /// </summary>
 /// <param name="model">The wit model information.</param>
 public WitService(IWitModel model)
 {
     SetField.NotNull(out this.model, nameof(model), model);
 }
 public HttpRequestMessage BuildRequest(IWitRequest witRequest, IWitModel model)
 {
     return(witRequest.BuildRequest(model));
 }
 public WitService(IWitModel model, IHttpService httpService)
 {
     SetField.NotNull(out this.httpService, "httpService", httpService);
     SetField.NotNull(out this.model, "model", model);
 }