feat(dal): Заготовка для IEsppScheduleTransformService
This commit is contained in:
@@ -11,6 +11,7 @@ using PARR.DAL.Services.Implementations.V1;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.AIHIT;
|
||||
using PARR.DAL.Services.Interfaces.V1;
|
||||
using PARR.DAL.TransformServices;
|
||||
|
||||
namespace PARR.DAL
|
||||
{
|
||||
@@ -56,6 +57,10 @@ namespace PARR.DAL
|
||||
services.AddTransient<IRobotConfigurationService, RobotConfigurationService>();
|
||||
services.AddTransient<IRobotHistoryService, RobotHistoryService>();
|
||||
services.AddTransient<IEsppSchTypeConfigService, EsppSchTypeConfigService>();
|
||||
|
||||
|
||||
// TransformServices
|
||||
services.AddTransient<IEsppScheduleTransformService, EsppScheduleTransformService>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
64
PARR.DAL/TransformServices/EsppScheduleTransformService.cs
Normal file
64
PARR.DAL/TransformServices/EsppScheduleTransformService.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.DAL.DomainModels;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
|
||||
namespace PARR.DAL.TransformServices
|
||||
{
|
||||
internal class EsppScheduleTransformService : IEsppScheduleTransformService
|
||||
{
|
||||
private readonly IEsppSchTypeConfigService esppSchTypeConfigService;
|
||||
private readonly ILogger<EsppScheduleTransformService> logger;
|
||||
|
||||
public EsppScheduleTransformService(IEsppSchTypeConfigService esppSchTypeConfigService, ILogger<EsppScheduleTransformService> logger)
|
||||
{
|
||||
this.esppSchTypeConfigService = esppSchTypeConfigService;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
|
||||
public DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset lastRun)
|
||||
{
|
||||
//todo:
|
||||
|
||||
return lastRun;
|
||||
}
|
||||
|
||||
|
||||
public List<DateTimeOffset> GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun)
|
||||
{
|
||||
var schedules = new List<DateTimeOffset>();
|
||||
|
||||
//todo:
|
||||
schedules.Add(lastRun);
|
||||
|
||||
|
||||
|
||||
return schedules.OrderBy(t => t).ToList();
|
||||
}
|
||||
|
||||
|
||||
public async Task<DateTimeOffset> GetNextDateAsync(Guid applicationInWorkId, DateTimeOffset lastRun)
|
||||
{
|
||||
return GetNextDate(await GetEsppSchedule(applicationInWorkId), lastRun);
|
||||
}
|
||||
|
||||
|
||||
public async Task<List<DateTimeOffset>> GetNextScheduleAsync(Guid applicationInWorkId, DateTimeOffset lastRun)
|
||||
{
|
||||
return GetNextSchedule(await GetEsppSchedule(applicationInWorkId), lastRun);
|
||||
}
|
||||
|
||||
|
||||
private async Task<EsppScheduleDto> GetEsppSchedule(Guid applicationInWorkId)
|
||||
{
|
||||
var esppSchedule = await esppSchTypeConfigService.GetEsppScheduleDtoAsync(applicationInWorkId);
|
||||
if (esppSchedule == null)
|
||||
{
|
||||
logger.LogError($"Не найдено расписание в БД, applicationInWorkId: {applicationInWorkId}");
|
||||
throw new Exception($"Не найдено расписание в БД, applicationInWorkId: {applicationInWorkId}");
|
||||
}
|
||||
|
||||
return esppSchedule;
|
||||
}
|
||||
}
|
||||
}
|
||||
42
PARR.DAL/TransformServices/IEsppScheduleTransformService.cs
Normal file
42
PARR.DAL/TransformServices/IEsppScheduleTransformService.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using PARR.DAL.DomainModels;
|
||||
|
||||
namespace PARR.DAL.TransformServices
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис трансформации расписания ЕСПП в дату/расписание
|
||||
/// </summary>
|
||||
public interface IEsppScheduleTransformService
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить следующую дату согласно расписания
|
||||
/// </summary>
|
||||
/// <param name="esppSchedule"></param>
|
||||
/// <param name="lastRun"></param>
|
||||
/// <returns></returns>
|
||||
DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset lastRun);
|
||||
|
||||
/// <summary>
|
||||
/// Получить расписание
|
||||
/// </summary>
|
||||
/// <param name="esppSchedule"></param>
|
||||
/// <param name="lastRun"></param>
|
||||
/// <returns></returns>
|
||||
List<DateTimeOffset> GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun);
|
||||
|
||||
/// <summary>
|
||||
/// Получить следующую дату по applicationInWorkId
|
||||
/// </summary>
|
||||
/// <param name="applicationInWorkId"></param>
|
||||
/// <param name="lastRun"></param>
|
||||
/// <returns></returns>
|
||||
Task<DateTimeOffset> GetNextDateAsync(Guid applicationInWorkId, DateTimeOffset lastRun);
|
||||
|
||||
/// <summary>
|
||||
/// Получить расписание по applicationInWorkId
|
||||
/// </summary>
|
||||
/// <param name="applicationInWorkId"></param>
|
||||
/// <param name="lastRun"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<DateTimeOffset>> GetNextScheduleAsync(Guid applicationInWorkId, DateTimeOffset lastRun);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user