/// <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); }
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)); }
/// <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); }
/// <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); }