feat(templateDistributor): заготовка основных методов

This commit is contained in:
Mikhail Kuznetsov
2024-07-02 15:04:23 +10:00
parent a486149017
commit cf5a465546
4 changed files with 43 additions and 7 deletions

View File

@@ -0,0 +1,10 @@
namespace PARR.BLL.Domain.Mq
{
/// <summary>
/// Модель в MQ, обновления расписаний шаблонов связанных с РР (для TemplateDistributor)
/// </summary>
public class TemplateDistributorMq
{
public Guid ApplicationInWorkId { get; set; }
}
}

View File

@@ -1,6 +1,22 @@
namespace PARR.TemplateDistributor using PARR.DAL.Models;
namespace PARR.TemplateDistributor
{ {
public interface ITemplateDistributor public interface ITemplateDistributor
{ {
/// <summary>
/// Формирует расписание запуска для шаблонов относительно одной РР (без сохранения в БД), (реализует оба режима распределения РР)
/// </summary>
/// <param name="templates"></param>
/// <param name="applicationInWorkId"></param>
/// <returns></returns>
Task<List<Template>> DistributeTemplateAsync(List<Template> templates, Guid applicationInWorkId);
/// <summary>
/// Обновляет расписание запуска шаблонов по РР (сохраняет в БД)
/// </summary>
/// <param name="applicationInWorkId"></param>
/// <returns></returns>
Task UpdateScheduleAsync(Guid applicationInWorkId);
} }
} }

View File

@@ -2,7 +2,10 @@
{ {
internal class MqTemplateDistributor : IMqTemplateDistributor internal class MqTemplateDistributor : IMqTemplateDistributor
{ {
public void Start() { } public void Start() {
// принимать TemplateDistributorMq
}
public void Stop() { } public void Stop() { }
} }

View File

@@ -14,16 +14,23 @@ namespace PARR.TemplateDistributor
} }
//TODO: AppInWorkId - перераспределение, очередь public async Task UpdateScheduleAsync(Guid applicationInWorkId)
//public async Task {
// распределить? // все шаблоны по applicationInWorkId
// не распределить, NextRun = appInWork.ReferenceDate // группирует по РР
// -> DistributeTemplateForPeriodAsync
// сохранить в БД
}
public async Task<List<Template>> DistributeTemplateForPeriodAsync(List<Template> templates, Guid applicationInWorkId)
public async Task<List<Template>> DistributeTemplateAsync(List<Template> templates, Guid applicationInWorkId)
{ {
//TODO: ЗАГУЛШКА переделать! //TODO: ЗАГУЛШКА переделать!
// распределить?
// не распределить, NextRun = appInWork.ReferenceDate
var appInWork = await applicationsInWorkService.Get().FirstOrDefaultAsync(t => t.Id == applicationInWorkId); var appInWork = await applicationsInWorkService.Get().FirstOrDefaultAsync(t => t.Id == applicationInWorkId);
if (appInWork == null) if (appInWork == null)
{ {