namespace PARR.API.Validators { //public class GeneratorTemplateRequestValidator : AbstractValidator //{ // private readonly IApplicationsInWorkService applicationsInWorkService; // private bool? isValid = null; // public GeneratorTemplateRequestValidator(IApplicationsInWorkService applicationsInWorkService) // { // this.applicationsInWorkService = applicationsInWorkService; // RuleFor(t => t.WorkId) // .MustAsync(async (entity, value, c) => await IsApplicationContainWork(entity, entity.ApplicationId)) // .WithMessage("У данной работы нет связанных приложений"); // RuleFor(t => t.ApplicationId) // .MustAsync(async (entity, value, c) => await IsApplicationContainWork(entity, value)) // .WithMessage("У данного приложения нет связанных работ"); // //TODO: возможно сделать проверку, по данному выражению есть ли ЭК // RuleFor(t => t.Ek).NotEmpty().WithMessage("Недопустимое значение ЭК. Возможные значения: *, ВРТ-*-ДВС"); // RuleFor(t => t.Action) // .Must(t => t.ToLower() == GenerateTemplateActionsEnum.create.ToString() || t.ToLower() == GenerateTemplateActionsEnum.deactivate.ToString()) // .WithMessage($"Допустимые значения: {GenerateTemplateActionsEnum.create}, {GenerateTemplateActionsEnum.deactivate}"); // //0 - все статусы, 1,2,3,4,5,6,7,9 // var ekStatuses = new List { 0, 1, 2, 3, 4, 5, 6, 7, 9 }; // //RuleFor(t => t.Status).Must(t => ekStatuses.Contains(t)).WithMessage("Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9"); // RuleFor(t => t.Status).Must((statuses) => // { // if (statuses.Count < 1) // return false; // var isContains = true; // statuses.ForEach(status => // { // if (ekStatuses.Contains(status) == false) // isContains = false; // }); // return isContains; // }).WithMessage("Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9"); // } // private async Task IsApplicationContainWork(GeneratorTemplateRequest request, Guid applicationId) // { // //чтобы не делать 2 раза валидацию // if (isValid.HasValue) // return isValid.Value; // isValid = await applicationsInWorkService.GetAsync(applicationId, request.WorkId) != null; // return isValid.Value; // } //} }