feat(api, dal): в SettingsFromDb добавлен параметр WeekendCacheTtl - время кэша для выходных. Доработан сервис WeekendDayService с учетом кэша. В апи добавлен контроллер по управлению выходными днями WeekendController

This commit is contained in:
Mikhail Trubnikov
2024-09-17 11:55:55 +10:00
parent 251e3a20b0
commit 2a1c4ac4a8
16 changed files with 3348 additions and 24 deletions

View File

@@ -0,0 +1,29 @@
using FluentValidation;
using Microsoft.EntityFrameworkCore;
using PARR.API.Contracts.V1.Requests;
using PARR.DAL.Services.Interfaces;
namespace PARR.API.Validators
{
public class WeekendRequestValidator : AbstractValidator<WeekendRequest>
{
private readonly IWeekendDayService weekendDayService;
public WeekendRequestValidator(IWeekendDayService weekendDayService)
{
this.weekendDayService = weekendDayService;
RuleFor(t => t.WeekendDate).MustAsync(async (entity, value, c) => await IsEmptyAsync(entity.WeekendDate)
).WithMessage("Данная запись уже существует.");
}
private async Task<bool> IsEmptyAsync(DateOnly date)
{
var exist = await weekendDayService.Get().FirstOrDefaultAsync(t => t.Date == date);
if (exist == null)
return true;
return false;
}
}
}