last ...
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using xAiService.Models.Dtos;
|
||||
using xCommons.Extensions;
|
||||
|
||||
namespace xAiService.Extensions
|
||||
{
|
||||
public static class PromptExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Get Template Params Filled Prompt ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="params"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetMessage(
|
||||
this XPromptDto source,
|
||||
IDictionary<string, string> @params = null
|
||||
)
|
||||
{
|
||||
//
|
||||
var result = string.Empty;
|
||||
|
||||
//
|
||||
if (!source.IsNullOrDefault() &&
|
||||
!source.Prompt.IsNullOrEmpty()
|
||||
)
|
||||
{
|
||||
result = source.Prompt;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Params Conditions ...
|
||||
if (!source.Params.IsNullOrDefault() &&
|
||||
source.Params.HasChild() &&
|
||||
!@params.IsNullOrDefault() &&
|
||||
@params.HasChild()
|
||||
)
|
||||
{
|
||||
//
|
||||
// Select Params ...
|
||||
var existsParams = source.Params
|
||||
.Where(p => @params.Any(pr => pr.Key == p.Name))
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
//
|
||||
// Replace Selected Params ...
|
||||
existsParams
|
||||
.ForEach(pk =>
|
||||
{
|
||||
result = result.Replace(pk.Param, @params[pk.Name]);
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user