feat(dal, templateDistributor): шаблон для templateDistributor

This commit is contained in:
Mikhail Kuznetsov
2024-07-02 11:43:59 +10:00
parent 2cc5100576
commit a486149017
9 changed files with 129 additions and 10 deletions

View File

@@ -0,0 +1,8 @@
namespace PARR.TemplateDistributor
{
public interface IMqTemplateDistributor
{
void Start();
void Stop();
}
}

View File

@@ -0,0 +1,6 @@
namespace PARR.TemplateDistributor
{
public interface ITemplateDistributor
{
}
}

View File

@@ -0,0 +1,9 @@
namespace PARR.TemplateDistributor
{
internal class MqTemplateDistributor : IMqTemplateDistributor
{
public void Start() { }
public void Stop() { }
}
}

View File

@@ -0,0 +1,39 @@
using Microsoft.EntityFrameworkCore;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
namespace PARR.TemplateDistributor
{
internal class TemplateDistributor : ITemplateDistributor
{
private readonly IApplicationsInWorkService applicationsInWorkService;
public TemplateDistributor(IApplicationsInWorkService applicationsInWorkService)
{
this.applicationsInWorkService = applicationsInWorkService;
}
//TODO: AppInWorkId - перераспределение, очередь
//public async Task
// распределить?
// не распределить, NextRun = appInWork.ReferenceDate
public async Task<List<Template>> DistributeTemplateForPeriodAsync(List<Template> templates, Guid applicationInWorkId)
{
//TODO: ЗАГУЛШКА переделать!
var appInWork = await applicationsInWorkService.Get().FirstOrDefaultAsync(t => t.Id == applicationInWorkId);
if (appInWork == null)
{
throw new Exception("ERROROORORO!!!");
}
templates.ForEach(t => t.NextRun = appInWork.ReferenceDate);
return templates;
}
}
}

View File

@@ -17,7 +17,8 @@ namespace PARR.TemplateDistributor
configuration.GetSection(nameof(MqSettings)).Bind(mqSettings);
services.AddSingleton(mqSettings);
//services.AddTransient<ITemplateSyncer, TemplateMQSyncer>();
services.AddTransient<ITemplateDistributor, TemplateDistributor>();
services.AddTransient<IMqTemplateDistributor, MqTemplateDistributor>();
}
}
}