public FluentPostFilterValidator(IReadSocialListsRepository readSocialListsRepository,
                                             IReadPeopleRepository readPeopleRepository)
            {
                _readSocialListsRepository = readSocialListsRepository;
                _readPeopleRepository      = readPeopleRepository;

                RuleFor(post => post.DateRange)
                .SetValidator(new DateRangeValidator());

                RuleFor(post => post.Page)
                .SetValidator(new PageValidator());

                When(post => !string.IsNullOrWhiteSpace(post.Network), () =>
                {
                    RuleFor(post => post.Network)
                    .Must(network => _validateNetworks.Contains(network.ToLower()))
                    .WithMessage("Invalid network");
                });

                When(post => post.Lists?.Count(x => !string.IsNullOrWhiteSpace(x)) > 0, () =>
                {
                    RuleForEach(post => post.Lists)
                    .MustAsync(BeAExistingListAsync)
                    .WithMessage("Invalid list");
                });

                When(post => post.AccountNames?.Count(x => !string.IsNullOrWhiteSpace(x)) > 0, () =>
                {
                    RuleForEach(post => post.AccountNames)
                    .MustAsync(BeAExistingAuthorAsync)
                    .WithMessage("Invalid account name");
                });
            }
            public FluentPersonFindValidator(IReadPeopleRepository readPeopleRepository)
            {
                _readPeopleRepository = readPeopleRepository;

                RuleFor(personFindModel => personFindModel.PersonId)
                .NotNull()
                .GreaterThanOrEqualTo(1);

                RuleFor(personFindModel => personFindModel.PersonId)
                .MustAsync(BeAValidIdAsync)
                .WithMessage("Invalid Id");
            }
 public PostSearchRequestValidator(IReadSocialListsRepository readSocialListsRepository,
                                   IReadPeopleRepository readPeopleRepository)
 {
     _validator = new FluentPostFilterValidator(readSocialListsRepository, readPeopleRepository);
 }
예제 #4
0
 public PeopleQuery(IReadPeopleRepository readPeopleRepository,
                    IPeopleFindValidators peopleFindValidators)
 {
     _readPeopleRepository = readPeopleRepository;
     _peopleFindValidators = peopleFindValidators;
 }
 public PeopleFindValidators(IReadPeopleRepository readPeopleRepository)
 {
     _validator = new FluentPersonFindValidator(readPeopleRepository);
 }