BotSharp/src/Infrastructure/BotSharp.Core/Infrastructures/ContentTransfer.cs

42 lines
951 B
C#
Raw Normal View History

2023-06-13 03:27:31 +00:00
namespace BotSharp.Core.Infrastructures;
public class ContentTransfer : IContentTransfer
{
private readonly IServiceProvider _services;
2023-06-23 04:43:00 +00:00
public ContentTransfer(IServiceProvider services)
2023-06-13 03:27:31 +00:00
{
_services = services;
}
public async Task<TransportResult> Transport(ContentContainer input)
{
2023-06-23 04:43:00 +00:00
input.Output = new RoleDialogModel();
2023-06-13 03:27:31 +00:00
var result = new TransportResult
{
IsSuccess = true,
Messages = new List<string>()
};
2023-06-23 04:43:00 +00:00
var zones = _services.GetServices<IChatServiceZone>()
.OrderBy(x => x.Priority)
.ToList();
2023-06-13 03:27:31 +00:00
foreach (var zone in zones)
{
try
{
await zone.Serving(input);
}
catch (Exception ex)
{
result.IsSuccess = false;
result.Messages.Add(ex.Message);
}
}
return result;
}
}