/// <summary> /// Method to generate text from given template and data. /// </summary> /// <param name="turnContext">Context for the current turn of conversation.</param> /// <param name="template">template to evaluate.</param> /// <param name="data">data to bind to.</param> /// <returns>generated text.</returns> public override async Task <string> Generate(ITurnContext turnContext, string template, object data) { try { return(await Task.FromResult(lg.EvaluateText(template, data).ToString())); } catch (Exception err) { if (!string.IsNullOrEmpty(this.Id)) { throw new Exception($"{Id}:{err.Message}"); } throw; } }
/// <summary> /// Method to generate text from given template and data. /// </summary> /// <param name="dialogContext">Context for the current turn of conversation.</param> /// <param name="template">template to evaluate.</param> /// <param name="data">data to bind to.</param> /// <param name="cancellationToken">the <see cref="CancellationToken"/> for the task.</param> /// <returns>generated text.</returns> public override Task <object> GenerateAsync(DialogContext dialogContext, string template, object data, CancellationToken cancellationToken = default) { try { return(Task.FromResult(lg.EvaluateText(template, data))); } catch (Exception err) { if (!string.IsNullOrEmpty(this.Id)) { throw new Exception($"{Id}:{err.Message}"); } throw; } }
/// <summary> /// Method to generate text from given template and data. /// </summary> /// <param name="dialogContext">Context for the current turn of conversation.</param> /// <param name="template">template to evaluate.</param> /// <param name="data">data to bind to.</param> /// <param name="cancellationToken">the <see cref="CancellationToken"/> for the task.</param> /// <returns>generated text.</returns> public override Task <object> GenerateAsync(DialogContext dialogContext, string template, object data, CancellationToken cancellationToken = default) { EventHandler onEvent = (s, e) => RunSync(() => HandlerLGEventAsync(dialogContext, s, e, cancellationToken)); var lgOpt = new EvaluationOptions() { Locale = dialogContext.GetLocale(), OnEvent = onEvent }; try { return(Task.FromResult(lg.EvaluateText(template, data, lgOpt))); } catch (Exception err) { if (!string.IsNullOrEmpty(this.Id)) { throw new Exception($"{Id}:{err.Message}"); } throw; } }