feat(esppOrderManager): вынесен шаблон поля Решение в настройки.
This commit is contained in:
@@ -19,6 +19,7 @@ namespace PARR.EsppOrderManager
|
||||
private readonly ITransformService transformService;
|
||||
private readonly IEsppOrderService esppOrderService;
|
||||
private readonly IServiceProvider serviceProvider;
|
||||
private readonly ResultTemplateSettings resultTemplateSettings;
|
||||
|
||||
public EsppOrderManager(
|
||||
MqSettings mqSettings,
|
||||
@@ -26,7 +27,8 @@ namespace PARR.EsppOrderManager
|
||||
ILogger<EsppOrderManager> logger,
|
||||
ITransformService transformService,
|
||||
IEsppOrderService esppOrderService,
|
||||
IServiceProvider serviceProvider
|
||||
IServiceProvider serviceProvider,
|
||||
ResultTemplateSettings resultTemplateSettings
|
||||
)
|
||||
{
|
||||
this.mqSettings = mqSettings;
|
||||
@@ -35,19 +37,20 @@ namespace PARR.EsppOrderManager
|
||||
this.transformService = transformService;
|
||||
this.esppOrderService = esppOrderService;
|
||||
this.serviceProvider = serviceProvider;
|
||||
this.resultTemplateSettings = resultTemplateSettings;
|
||||
}
|
||||
|
||||
public async void Start()
|
||||
public void Start()
|
||||
{
|
||||
// логика работы описана в документации
|
||||
|
||||
//var isConnected = mqService.InitConsumer(mqSettings, ManageOrderAsync);
|
||||
var isConnected = mqService.InitConsumer(mqSettings, ManageOrderAsync);
|
||||
|
||||
//if (!isConnected)
|
||||
// throw new Exception("Ошибка при подключении к RabbitMq");
|
||||
if (!isConnected)
|
||||
throw new Exception("Ошибка при подключении к RabbitMq");
|
||||
|
||||
//test, and remove async in method name
|
||||
await ManageOrderAsync("{\"OrderId\":\"dd04a997-e7b5-4326-b6e1-505719cc46fb\"}");
|
||||
//await ManageOrderAsync("{\"OrderId\":\"49191af5-c313-4388-9720-a61fd13f15a8\"}");
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
@@ -58,7 +61,7 @@ namespace PARR.EsppOrderManager
|
||||
|
||||
private async Task ManageOrderAsync(string msg)
|
||||
{
|
||||
logger.LogDebug($"Получили сообщение: {msg}");
|
||||
//logger.LogDebug($"Получили сообщение: {msg}");
|
||||
|
||||
var objFromQuery = transformService.GetModelFromJson<OrderManageMq>(msg);
|
||||
if (objFromQuery == null)
|
||||
@@ -149,17 +152,22 @@ namespace PARR.EsppOrderManager
|
||||
.OrderBy(t => t.DateCreated)
|
||||
.Select(t => $"{t.DateCreated} :: {t.AgentHistoryLevel?.Name} :: {t.Message}");
|
||||
|
||||
var baseMsg = order.Template!.ApplicationsInWork!.Solution + "\n";
|
||||
//"Template": "{base}\n{msgAgent}",
|
||||
//"MsgAgent": "Работы выполнены средствами автоматизации.\nЖурнал работы:\n{agentHistory}",
|
||||
//"MsgAgentEmpty": "Работы должны были выполняться средствами автоматизации. От средств автоматизации не поступило сообщений. Работы не выполнены."
|
||||
|
||||
var msgAgent = "Работы выполнены средствами автоматизации. \n" +
|
||||
"Журнал работы: \n" +
|
||||
$"{string.Join("\n", agentHistory)}";
|
||||
//Шаблон поля Решение
|
||||
var template = resultTemplateSettings.Template;
|
||||
|
||||
var msgAgentEmpty = "Работы должны были выполняться средствами автоматизации. " +
|
||||
"От средств автоматизации не поступило сообщений. " +
|
||||
"Работы не выполнены.";
|
||||
//Поле решение из ApplicationsInWork
|
||||
var baseMsg = order.Template!.ApplicationsInWork!.Solution;
|
||||
|
||||
return baseMsg + (agentHistory.Any() ? msgAgent : msgAgentEmpty);
|
||||
//Формируем сообщения от Агента
|
||||
var msgAgent = agentHistory.Any()
|
||||
? resultTemplateSettings.MsgAgent.Replace("{agentHistory}", string.Join("\n", agentHistory))
|
||||
: resultTemplateSettings.MsgAgentEmpty;
|
||||
|
||||
return template.Replace("{base}", baseMsg).Replace("{msgAgent}", msgAgent);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user