Merge branch 'distributor' into dev
This commit is contained in:
@@ -24,21 +24,21 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IClientService clientService;
|
||||
private readonly ITemplateService templateService;
|
||||
private readonly IUnitService unitService;
|
||||
private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
//private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
private readonly ILogger<AgentTaskController> logger;
|
||||
|
||||
public AgentTaskController(
|
||||
IClientService clientService,
|
||||
ITemplateService templateService,
|
||||
IUnitService unitService,
|
||||
IEsppScheduleTransformService esppScheduleTransformService,
|
||||
//IEsppScheduleTransformService esppScheduleTransformService,
|
||||
ILogger<AgentTaskController> logger
|
||||
)
|
||||
{
|
||||
this.clientService = clientService;
|
||||
this.templateService = templateService;
|
||||
this.unitService = unitService;
|
||||
this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
//this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@@ -51,82 +51,84 @@ namespace PARR.API.Controllers.V1
|
||||
[HttpGet(ApiRoutes.AgentTask.GetByIp)]
|
||||
public async Task<IActionResult> GetByClientIp([FromQuery] AgentTaskGetByIpQuery request)
|
||||
{
|
||||
//ПАРР-ДВС-ПТК__ВРТ-DVGD-SDMI-WEB-01-ДВС__ПРОЧЕЕ(РАБОТЫ)
|
||||
//10.99.253.65
|
||||
//2023-10-16
|
||||
|
||||
var ip = request.Ip ?? clientService.GetClientIp()?.ToString();
|
||||
return Ok("Метод не реализован");
|
||||
////ПАРР-ДВС-ПТК__ВРТ-DVGD-SDMI-WEB-01-ДВС__ПРОЧЕЕ(РАБОТЫ)
|
||||
////10.99.253.65
|
||||
////2023-10-16
|
||||
|
||||
if (string.IsNullOrEmpty(ip))
|
||||
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = "Client IP address is null." } }));
|
||||
//var ip = request.Ip ?? clientService.GetClientIp()?.ToString();
|
||||
|
||||
//var date = request.Date ?? DateTimeOffset.UtcNow;
|
||||
var date = DateTimeOffset.UtcNow;
|
||||
//if (string.IsNullOrEmpty(ip))
|
||||
// return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = "Client IP address is null." } }));
|
||||
|
||||
//Агент получает задания, если `IsAgent = true`, шаблон и расписания активны, и статус синхронизации шаблона и расписания `= Ok`, и `NextRun = сегодня`, так же если у ApplicationInWork есть расписание.
|
||||
////var date = request.Date ?? DateTimeOffset.UtcNow;
|
||||
//var date = DateTimeOffset.UtcNow;
|
||||
|
||||
// С одним IP может быть несколько информационных систем, так что может быть несколько хостов
|
||||
var units = await unitService.GetWithIncludes().AsNoTracking().Where(t => t.UnitValues.Any(v => v.Field!.AihitName == "IP_АДРЕС" && v.Value!.Value == ip)).ToListAsync();
|
||||
var templates = await templateService.Get()
|
||||
.Include(t => t.RobotConfigurations)
|
||||
.Include(t => t.Job)
|
||||
.ThenInclude(t=>t!.Group)
|
||||
.ThenInclude(t => t!.EsppSchValues)
|
||||
.Include(t => t.Unit)
|
||||
.Where(t => units.Any(u=>u.Id == t.UnitId)
|
||||
//&& t.ApplicationsInWork!.IsAgent == true//TODO Migration to job
|
||||
&& t.IsActiveTemplate == true
|
||||
&& t.IsActiveSchedule == true
|
||||
//&& t.ApplicationsInWork!.NextRun.DateTime.Date == date.Date.Date
|
||||
&& t.NextRun.DateTime.Date == date.Date.Date
|
||||
&& t.RobotConfigurations.All(c => c.TaskStatusCode == (int)TaskStatusEnum.Ok)
|
||||
&& t.Job!.Group!.EsppSchValues.Any()//.ApplicationsInWork.EsppSchValues.Any()
|
||||
).ToListAsync();
|
||||
////Агент получает задания, если `IsAgent = true`, шаблон и расписания активны, и статус синхронизации шаблона и расписания `= Ok`, и `NextRun = сегодня`, так же если у ApplicationInWork есть расписание.
|
||||
|
||||
if (!templates.Any())
|
||||
return NoContent();
|
||||
//// С одним IP может быть несколько информационных систем, так что может быть несколько хостов
|
||||
//var units = await unitService.GetWithIncludes().AsNoTracking().Where(t => t.UnitValues.Any(v => v.Field!.AihitName == "IP_АДРЕС" && v.Value!.Value == ip)).ToListAsync();
|
||||
//var templates = await templateService.Get()
|
||||
// .Include(t => t.RobotConfigurations)
|
||||
// .Include(t => t.Job)
|
||||
// .ThenInclude(t=>t!.Group)
|
||||
// .ThenInclude(t => t!.EsppSchValues)
|
||||
// .Include(t => t.Unit)
|
||||
// .Where(t => units.Any(u=>u.Id == t.UnitId)
|
||||
// //&& t.ApplicationsInWork!.IsAgent == true//TODO Migration to job
|
||||
// && t.IsActiveTemplate == true
|
||||
// && t.IsActiveSchedule == true
|
||||
// //&& t.ApplicationsInWork!.NextRun.DateTime.Date == date.Date.Date
|
||||
// && t.NextRun.DateTime.Date == date.Date.Date
|
||||
// && t.RobotConfigurations.All(c => c.TaskStatusCode == (int)TaskStatusEnum.Ok)
|
||||
// && t.Job!.Group!.EsppSchValues.Any()//.ApplicationsInWork.EsppSchValues.Any()
|
||||
// ).ToListAsync();
|
||||
|
||||
var response = new AgentTaskMinResponse
|
||||
{
|
||||
Scheduled = new List<AgentTaskMinScheduleResponse>()
|
||||
};
|
||||
//if (!templates.Any())
|
||||
// return NoContent();
|
||||
|
||||
foreach (var template in templates)
|
||||
{
|
||||
//var templateSchedule = await esppScheduleTransformService.GetNextScheduleAsync(template.ApplicationInWorkId, template.ApplicationsInWork!.LastRun ?? template.ApplicationsInWork!.NextRun);
|
||||
var templateSchedule = await esppScheduleTransformService.GetNextScheduleAsync(template.Job!.GroupId, template.NextRun);
|
||||
//var response = new AgentTaskMinResponse
|
||||
//{
|
||||
// Scheduled = new List<AgentTaskMinScheduleResponse>()
|
||||
//};
|
||||
|
||||
if (!templateSchedule.Any())
|
||||
{
|
||||
logger.LogWarning($"Запросили раписание для агента по NextRun и вернулся пустой список! Такого не должно быть! " +
|
||||
$"JobGroupId: {template.Job.GroupId}, latRun: {template.LastRun}, NextRun: {template.NextRun}, ip: {ip}, date: {date}");
|
||||
continue;
|
||||
}
|
||||
//foreach (var template in templates)
|
||||
//{
|
||||
// //var templateSchedule = await esppScheduleTransformService.GetNextScheduleAsync(template.ApplicationInWorkId, template.ApplicationsInWork!.LastRun ?? template.ApplicationsInWork!.NextRun);
|
||||
// var templateSchedule = await esppScheduleTransformService.GetNextScheduleAsync(template.Job!.GroupId, template.NextRun);
|
||||
|
||||
if (string.IsNullOrEmpty(template.Job.Group!.AgentName) && string.IsNullOrEmpty(template.Job.Group!.AgentScript))
|
||||
{
|
||||
logger.LogWarning($"Запросили задание для агента с пустыми значениями AgentName && AgentScript. Такого не должно быть! " +
|
||||
$"JobGroupId: {template.Job.GroupId}, AgentName: {template.Job.Group.AgentName}, AgentScript: {template.Job.Group.AgentScript} , ip: {ip}, date: {date}");
|
||||
continue;
|
||||
}
|
||||
// if (!templateSchedule.Any())
|
||||
// {
|
||||
// logger.LogWarning($"Запросили раписание для агента по NextRun и вернулся пустой список! Такого не должно быть! " +
|
||||
// $"JobGroupId: {template.Job.GroupId}, latRun: {template.LastRun}, NextRun: {template.NextRun}, ip: {ip}, date: {date}");
|
||||
// continue;
|
||||
// }
|
||||
|
||||
templateSchedule.ForEach(item => response.Scheduled.Add(new AgentTaskMinScheduleResponse
|
||||
{
|
||||
Name = template.Job.Group.AgentName ?? "",
|
||||
Script = template.Job.Group.AgentScript ?? "",
|
||||
StartAt = item,
|
||||
TemplateId = template.Id
|
||||
}));
|
||||
}
|
||||
// if (string.IsNullOrEmpty(template.Job.Group!.AgentName) && string.IsNullOrEmpty(template.Job.Group!.AgentScript))
|
||||
// {
|
||||
// logger.LogWarning($"Запросили задание для агента с пустыми значениями AgentName && AgentScript. Такого не должно быть! " +
|
||||
// $"JobGroupId: {template.Job.GroupId}, AgentName: {template.Job.Group.AgentName}, AgentScript: {template.Job.Group.AgentScript} , ip: {ip}, date: {date}");
|
||||
// continue;
|
||||
// }
|
||||
|
||||
if (!response.Scheduled.Any())
|
||||
return NoContent();
|
||||
// templateSchedule.ForEach(item => response.Scheduled.Add(new AgentTaskMinScheduleResponse
|
||||
// {
|
||||
// Name = template.Job.Group.AgentName ?? "",
|
||||
// Script = template.Job.Group.AgentScript ?? "",
|
||||
// StartAt = item,
|
||||
// TemplateId = template.Id
|
||||
// }));
|
||||
//}
|
||||
|
||||
response.Scheduled = response.Scheduled.OrderBy(t => t.StartAt).ToList();
|
||||
//if (!response.Scheduled.Any())
|
||||
// return NoContent();
|
||||
|
||||
logger.LogInformation($"Агент с IP-адресом {ip} получил задания: [{string.Join(';', response.Scheduled.Select(s => $"StartAt:{s.StartAt}, Name:{s.Name}, TemplateId:{s.TemplateId}"))}]");
|
||||
//response.Scheduled = response.Scheduled.OrderBy(t => t.StartAt).ToList();
|
||||
|
||||
return Ok(response);
|
||||
//logger.LogInformation($"Агент с IP-адресом {ip} получил задания: [{string.Join(';', response.Scheduled.Select(s => $"StartAt:{s.StartAt}, Name:{s.Name}, TemplateId:{s.TemplateId}"))}]");
|
||||
|
||||
//return Ok(response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,10 +5,13 @@ using PARR.API.Contracts.V1;
|
||||
using PARR.API.Contracts.V1.Requests;
|
||||
using PARR.API.Contracts.V1.Responses.Base;
|
||||
using PARR.API.Controllers.V1.Base;
|
||||
using PARR.API.Services.Interfaces;
|
||||
using PARR.API.Settings;
|
||||
using PARR.BLL.Domain.Mq;
|
||||
using PARR.BLL.Services.Interfaces;
|
||||
using PARR.Common.Domain;
|
||||
using PARR.Constants;
|
||||
using System.Text.Encodings.Web;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace PARR.API.Controllers.V1
|
||||
@@ -22,21 +25,24 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IMqService mqService;
|
||||
private readonly MqSettings mqSettings;
|
||||
private readonly IValidator<DistributeRequest> validator;
|
||||
private readonly IClientService clientService;
|
||||
|
||||
public DistributorController(
|
||||
IMqService mqService,
|
||||
MqSettings mqSettings,
|
||||
IValidator<DistributeRequest> validator
|
||||
IValidator<DistributeRequest> validator,
|
||||
IClientService clientService
|
||||
)
|
||||
{
|
||||
this.mqService = mqService;
|
||||
this.mqSettings = mqSettings;
|
||||
this.validator = validator;
|
||||
this.clientService = clientService;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Перераспределить шаблоны для регламентной работы
|
||||
/// Перераспределить шаблоны для группы работ
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost(ApiRoutes.Distributor.Distribute)]
|
||||
@@ -48,17 +54,28 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
var requestToMq = new TemplateDistributorMq
|
||||
{
|
||||
ApplicationInWorkId = request.ApplicationInWorkId
|
||||
JobGroupId = request.JobGroupId,
|
||||
Initiator = new HistoryInitiator
|
||||
{
|
||||
InitiatorComment = "Через API отправлен запрос на распределение шаблонов",
|
||||
InitiatorIp = clientService.GetClientIp()?.ToString(),
|
||||
InitiatorParrComponentId = ParrComponentsEnum.Api
|
||||
}
|
||||
};
|
||||
|
||||
var msg = JsonSerializer.Serialize(requestToMq);
|
||||
//var jsonOptions = new JsonSerializerOptions
|
||||
//{
|
||||
// Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
||||
//};
|
||||
//var msg = JsonSerializer.Serialize(requestToMq, jsonOptions);
|
||||
|
||||
var sendResult = await mqService.SendAsync(mqSettings.TemplateDistributor, new[] { msg });
|
||||
//var sendResult = await mqService.SendAsync(mqSettings.TemplateDistributor, new[] { msg });
|
||||
var sendResult = await mqService.SendAsync(mqSettings.TemplateDistributor, new List<object> { requestToMq });
|
||||
|
||||
if (sendResult.IsSuccess)
|
||||
return Created("", new Response<string?>(null, true, new List<ErrorModel>(), "Отправлен запрос на перераспределение регламентных работ."));
|
||||
else
|
||||
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message="Ошибка при отправке данных."} }));
|
||||
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = "Ошибка при отправке данных." } }));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,9 +72,10 @@ namespace PARR.API.Controllers.V1
|
||||
HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api }
|
||||
};
|
||||
|
||||
var msg = JsonSerializer.Serialize(obj);
|
||||
//var msg = JsonSerializer.Serialize(obj);
|
||||
|
||||
var _result = await mqService.SendAsync(mqSettings.GenerateTemplates, new[] { msg });
|
||||
//var _result = await mqService.SendAsync(mqSettings.GenerateTemplates, new[] { msg });
|
||||
var _result = await mqService.SendAsync(mqSettings.GenerateTemplates, new List<object> { obj });
|
||||
|
||||
if (_result.IsSuccess == false)
|
||||
result = false;
|
||||
|
||||
@@ -641,18 +641,20 @@ namespace PARR.API.Controllers.V1
|
||||
}
|
||||
};
|
||||
|
||||
var msg = JsonSerializer.Serialize(request);
|
||||
//var msg = JsonSerializer.Serialize(request);
|
||||
|
||||
//var result = await mqService.SendAsync(mqSettings.TemplatesMatcher, new[] { msg });
|
||||
var result = await mqService.SendAsync(mqSettings.TemplatesMatcher, new List<object> { request });
|
||||
|
||||
var result = await mqService.SendAsync(mqSettings.TemplatesMatcher, new[] { msg });
|
||||
logger.LogDebug("Получен код отпрвки: {IsSuccess}", result.IsSuccess);
|
||||
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
logger.LogError($"Ошибка при отправке запроса в очередь на обновление связанных шаблонов, после обновления маски шаблона. {msg}");
|
||||
logger.LogError($"Ошибка при отправке запроса в очередь на обновление связанных шаблонов, после обновления маски шаблона. {request.ToJson()}");
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.LogInformation($"После изменения маски шаблона в jobId: {jobId}, отправлен запрос в очередь на переименование связанных шаблонов: {msg}");
|
||||
logger.LogInformation($"После изменения маски шаблона в jobId: {jobId}, отправлен запрос в очередь на переименование связанных шаблонов: {request.ToJson()}");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ using PARR.DAL.Contracts;
|
||||
using PARR.DAL.DomainServices.Shortcodes;
|
||||
using PARR.DAL.DomainServices.Shortcodes.Models;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.NextRunServices;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.TransformServices;
|
||||
|
||||
@@ -25,31 +26,34 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IMapper mapper;
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
private readonly IRobotConfigurationService robotConfigurationService;
|
||||
private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
//private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
private readonly ILogger<RobotTaskController> logger;
|
||||
private readonly IClientService clientService;
|
||||
private readonly IRobotHistoryService robotHistoryService;
|
||||
private readonly IShortcodesService shortcodesService;
|
||||
private readonly INextRunService nextRunService;
|
||||
|
||||
public RobotTaskController(
|
||||
IMapper mapper,
|
||||
SettingsFromDb settingsFromDb,
|
||||
IRobotConfigurationService robotConfigurationService,
|
||||
IEsppScheduleTransformService esppScheduleTransformService,
|
||||
//IEsppScheduleTransformService esppScheduleTransformService,
|
||||
ILogger<RobotTaskController> logger,
|
||||
IClientService clientService,
|
||||
IRobotHistoryService robotHistoryService,
|
||||
IShortcodesService shortcodesService
|
||||
IShortcodesService shortcodesService,
|
||||
INextRunService nextRunService
|
||||
)
|
||||
{
|
||||
this.mapper = mapper;
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
this.robotConfigurationService = robotConfigurationService;
|
||||
this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
//this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
this.logger = logger;
|
||||
this.clientService = clientService;
|
||||
this.robotHistoryService = robotHistoryService;
|
||||
this.shortcodesService = shortcodesService;
|
||||
this.nextRunService = nextRunService;
|
||||
}
|
||||
|
||||
|
||||
@@ -306,7 +310,8 @@ namespace PARR.API.Controllers.V1
|
||||
//пока у нас выключено автораспределение, считает по refDate
|
||||
//TODO: когда заработает автораспределение, будем думать!!!!!
|
||||
|
||||
var nextRun = await esppScheduleTransformService.GetNextDateAsync(template.Job!.GroupId, template!.Job!.Group!.ReferenceDate);
|
||||
//var nextRun = await esppScheduleTransformService.GetNextDateAsync(template.Job!.GroupId, template!.Job!.Group!.ReferenceDate);
|
||||
var nextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
|
||||
|
||||
if (nextRun != template.NextRun)
|
||||
{
|
||||
|
||||
@@ -73,10 +73,11 @@ namespace PARR.API.Controllers.V1
|
||||
}
|
||||
};
|
||||
|
||||
var msg = JsonSerializer.Serialize(matchTemplateTask);
|
||||
logger.LogDebug("Подготовлено сообщение: {Message}", new[] { msg });
|
||||
//var msg = JsonSerializer.Serialize(matchTemplateTask);
|
||||
//logger.LogDebug("Подготовлено сообщение: {Message}", new[] { msg });
|
||||
|
||||
var result = await mqService.SendAsync(mqSettings.TemplatesMatcher, new[] { msg });
|
||||
//var result = await mqService.SendAsync(mqSettings.TemplatesMatcher, new[] { msg });
|
||||
var result = await mqService.SendAsync(mqSettings.TemplatesMatcher, new List<object> { matchTemplateTask });
|
||||
logger.LogDebug("Получен код отпрвки: {IsSuccess}", result.IsSuccess);
|
||||
|
||||
if (!result.IsSuccess)
|
||||
|
||||
@@ -67,9 +67,10 @@ namespace PARR.API.Controllers.V1
|
||||
HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api }
|
||||
};
|
||||
|
||||
var msg = JsonSerializer.Serialize(mqRequest);
|
||||
//var msg = JsonSerializer.Serialize(mqRequest);
|
||||
|
||||
var sendResult = await mqService.SendAsync(mqSettings.TemplateActivator, new[] { msg });
|
||||
//var sendResult = await mqService.SendAsync(mqSettings.TemplateActivator, new[] { msg });
|
||||
var sendResult = await mqService.SendAsync(mqSettings.TemplateActivator, new List<object> { mqRequest });
|
||||
|
||||
if (!sendResult.IsSuccess)
|
||||
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при отправке данных." } }));
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace PARR.API.Controllers.V1
|
||||
public class TestController : BaseApiController
|
||||
{
|
||||
private readonly IClientService clientService;
|
||||
private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
//private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
private readonly IRedisCacheService redisCacheService;
|
||||
private readonly IWeekendDayService weekendDayService;
|
||||
private readonly IUnitService unitService;
|
||||
@@ -37,7 +37,7 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
public TestController(
|
||||
IClientService clientService,
|
||||
IEsppScheduleTransformService esppScheduleTransformService,
|
||||
//IEsppScheduleTransformService esppScheduleTransformService,
|
||||
IRedisCacheService redisCacheService,
|
||||
IWeekendDayService weekendDayService,
|
||||
IUnitService unitService,
|
||||
@@ -49,7 +49,7 @@ namespace PARR.API.Controllers.V1
|
||||
)
|
||||
{
|
||||
this.clientService = clientService;
|
||||
this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
//this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
this.redisCacheService = redisCacheService;
|
||||
this.weekendDayService = weekendDayService;
|
||||
this.unitService = unitService;
|
||||
@@ -76,32 +76,32 @@ namespace PARR.API.Controllers.V1
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Получить следующую дату запуска
|
||||
/// </summary>
|
||||
/// <param name="applicationInWorkId"></param>
|
||||
/// <param name="lastRunDate"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(ApiRoutes.Test.GetNextScheduleDate)]
|
||||
public async Task<IActionResult> GetNextScheduleDate([FromRoute] Guid applicationInWorkId, [FromRoute] DateTimeOffset lastRunDate)
|
||||
{
|
||||
var result = await esppScheduleTransformService.GetNextDateAsync(applicationInWorkId, lastRunDate);
|
||||
return Ok(result);
|
||||
}
|
||||
///// <summary>
|
||||
///// Получить следующую дату запуска
|
||||
///// </summary>
|
||||
///// <param name="applicationInWorkId"></param>
|
||||
///// <param name="lastRunDate"></param>
|
||||
///// <returns></returns>
|
||||
//[HttpGet(ApiRoutes.Test.GetNextScheduleDate)]
|
||||
//public async Task<IActionResult> GetNextScheduleDate([FromRoute] Guid applicationInWorkId, [FromRoute] DateTimeOffset lastRunDate)
|
||||
//{
|
||||
// var result = await esppScheduleTransformService.GetNextDateAsync(applicationInWorkId, lastRunDate);
|
||||
// return Ok(result);
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Получить следующее расписание
|
||||
/// </summary>
|
||||
/// <param name="applicationInWorkId"></param>
|
||||
/// <param name="lastRunDate"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(ApiRoutes.Test.GetNextSchedule)]
|
||||
public async Task<IActionResult> GetNextSchedule([FromRoute] Guid applicationInWorkId, [FromRoute] DateTimeOffset lastRunDate)
|
||||
{
|
||||
var result = await esppScheduleTransformService.GetNextScheduleAsync(applicationInWorkId, lastRunDate);
|
||||
return Ok(result);
|
||||
}
|
||||
///// <summary>
|
||||
///// Получить следующее расписание
|
||||
///// </summary>
|
||||
///// <param name="applicationInWorkId"></param>
|
||||
///// <param name="lastRunDate"></param>
|
||||
///// <returns></returns>
|
||||
//[HttpGet(ApiRoutes.Test.GetNextSchedule)]
|
||||
//public async Task<IActionResult> GetNextSchedule([FromRoute] Guid applicationInWorkId, [FromRoute] DateTimeOffset lastRunDate)
|
||||
//{
|
||||
// var result = await esppScheduleTransformService.GetNextScheduleAsync(applicationInWorkId, lastRunDate);
|
||||
// return Ok(result);
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user