public CreateReplyValidator(IForumRules forumRules, ITopicRules topicRules) { RuleFor(c => c.Content) .NotEmpty().WithMessage("Reply content is required."); RuleFor(c => c.ForumId) .MustAsync((c, p, cancellation) => forumRules.IsValidAsync(c.SiteId, p)) .WithMessage(c => $"Forum with id {c.ForumId} does not exist."); RuleFor(c => c.TopicId) .MustAsync((c, p, cancellation) => topicRules.IsValidAsync(c.SiteId, c.ForumId, p)) .WithMessage(c => $"Topic with id {c.ForumId} does not exist."); }
public CreateTopicValidator(IForumRules forumRules) { RuleFor(c => c.Title) .NotEmpty().WithMessage("Topic title is required.") .Length(1, 100).WithMessage("Topic title must be at least 1 and at max 100 characters long."); RuleFor(c => c.Slug) .Length(1, 50).WithMessage("Topic slug must be at max 50 characters long.") .When(c => !string.IsNullOrWhiteSpace(c.Slug)); RuleFor(c => c.Content) .NotEmpty().WithMessage("Topic content is required."); RuleFor(c => c.ForumId) .MustAsync((c, p, cancellation) => forumRules.IsValidAsync(c.SiteId, p)) .WithMessage(c => $"Forum with id {c.ForumId} does not exist."); }