feat(api, dal): в SettingsFromDb добавлен параметр WeekendCacheTtl - время кэша для выходных. Доработан сервис WeekendDayService с учетом кэша. В апи добавлен контроллер по управлению выходными днями WeekendController
This commit is contained in:
29
PARR.API/Validators/WeekendRequestValidator.cs
Normal file
29
PARR.API/Validators/WeekendRequestValidator.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user