using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using PARR.Constants; using PARR.DAL.Services.Interfaces; namespace PARR.TemplateActivator; internal class ValidatorService : IValidatorService { private readonly IServiceProvider serviceProvider; private readonly ILogger logger; public ValidatorService(IServiceProvider serviceProvider, ILogger logger ) { this.serviceProvider = serviceProvider; this.logger = logger; } public async Task IsValidApplicationInWorkAsync(Guid applicationInWorkId) { using (var scope = serviceProvider.CreateScope()) { var service = scope.ServiceProvider.GetService(); if (service == null) throw new Exception($"Не найден сервис: {nameof(IApplicationsInWorkService)}"); var appInWork = await service.Get() .FirstOrDefaultAsync(t => t.Id == applicationInWorkId); if (appInWork == null) { logger.LogError($"Не найдена регалментная работа {nameof(applicationInWorkId)}: {applicationInWorkId}"); return false; } return true; } } }