feat: Из dal перенесены все модели в Domain. Из dal переименованы service в repository, вынесены в Core.

This commit is contained in:
Mikhail Trubnikov
2026-04-30 10:35:31 +10:00
parent f1ea69da1f
commit eb78dfd6a8
356 changed files with 1817 additions and 1985 deletions

View File

@@ -0,0 +1,13 @@
using Microsoft.Extensions.Logging;
using PARR.Core.Repositories.Interfaces.Schedule;
using PARR.DAL.Context;
using PARR.DAL.Repositories.Base;
using PARR.Domain.Entities.Schedule;
namespace PARR.DAL.Repositories.Schedule
{
internal class ScheduleExcludeTypeCalendarRepository : BaseRepository<ScheduleExcludeTypeCalendar>, IScheduleExcludeTypeCalendarRepository
{
public ScheduleExcludeTypeCalendarRepository(DataContext dataContext, ILogger<ScheduleExcludeTypeCalendarRepository> logger) : base(logger, dataContext) { }
}
}

View File

@@ -0,0 +1,13 @@
using Microsoft.Extensions.Logging;
using PARR.Core.Repositories.Interfaces.Schedule;
using PARR.DAL.Context;
using PARR.DAL.Repositories.Base;
using PARR.Domain.Entities.Schedule;
namespace PARR.DAL.Repositories.Schedule
{
internal class ScheduleExcludeTypeRepository : BaseRepository<ScheduleExcludeType>, IScheduleExcludeTypeRepository
{
public ScheduleExcludeTypeRepository(DataContext dataContext, ILogger<ScheduleExcludeTypeRepository> logger) : base(logger, dataContext) { }
}
}

View File

@@ -0,0 +1,82 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.Core.Repositories.Interfaces.Schedule;
using PARR.DAL.Context;
using PARR.DAL.Contracts;
using PARR.Domain.Entities.Schedule;
namespace PARR.DAL.Repositories.Schedule
{
internal sealed class ScheduleResponseAreaTimeOffsetRepository : IScheduleResponseAreaTimeOffsetRepository
{
private readonly IReadOnlyDictionary<string, ScheduleResponseAreaTimeOffset> offsetList;
/// <summary>
/// ЗО по умолчанию
/// </summary>
private readonly string defaultResponseArea;
/// <summary>
/// Настройки, если не нашли в offsetList
/// </summary>
private readonly ScheduleResponseAreaTimeOffset defaultOffset;
private readonly ILogger<ScheduleResponseAreaTimeOffsetRepository> logger;
public ScheduleResponseAreaTimeOffsetRepository(DataContext dataContext, SettingsFromDb settingsFromDb, ILogger<ScheduleResponseAreaTimeOffsetRepository> logger)
{
offsetList = dataContext.ScheduleResponseAreaTimeOffsets
.AsNoTracking()
.ToDictionary(t => t.ResponseArea, t => t, StringComparer.OrdinalIgnoreCase);
if (string.IsNullOrEmpty(settingsFromDb.DefaultResponseAreaToTimeOffset))
defaultResponseArea = "17-МСК";
else
defaultResponseArea = settingsFromDb.DefaultResponseAreaToTimeOffset;
defaultOffset = new ScheduleResponseAreaTimeOffset
{
ResponseArea = "17-МСК",
EsppValue = "",
UtcTimeOffset = new TimeSpan(3, 0, 0)
};
this.logger = logger;
}
public IReadOnlyDictionary<string, ScheduleResponseAreaTimeOffset> GetAll => offsetList;
public ScheduleResponseAreaTimeOffset GetDefault => GetByResponseAreaOrDefault(defaultResponseArea);
public ScheduleResponseAreaTimeOffset GetByResponseAreaOrDefault(string responseArea)
{
offsetList.TryGetValue(responseArea, out var value);
if (value != null)
{
logger.LogDebug("Получил часовой пояс по ЗО '{responseArea}', esppValue: {EsppValue}, utcTimeOffset: {utcTimeOffset}", responseArea, value.EsppValue, value.UtcTimeOffset);
return value;
}
else
{
logger.LogWarning("Не смог получить часовой пояс по ЗО '{responseArea}', вернул часово пояс по умолчанию: name: {name}, esppValue: {EsppValue}, utcTimeOffset: {utcTimeOffset}",
responseArea, defaultOffset.ResponseArea, defaultOffset.EsppValue, defaultOffset.UtcTimeOffset);
return defaultOffset;
}
//return offsetList.TryGetValue(responseArea, out var value) ? value : defaultOffset;
}
//public IQueryable<ScheduleResponseAreaTimeOffset> Get()
//{
// return dataContext.ScheduleResponseAreaTimeOffsets;
//}
//public async Task<string?> GetTimeOffsetByResponseAreaAsync(string responseArea)
//{
// var result = await dataContext.ScheduleResponseAreaTimeOffsets.FirstOrDefaultAsync(t => t.ResponseArea == responseArea);
// return result != null ? result.TimeOffset : null;
//}
}
}