initial commit

This commit is contained in:
2026-07-21 13:59:38 +07:00
commit c40792266a
1321 changed files with 100465 additions and 0 deletions
@@ -0,0 +1,27 @@
using FluentValidation;
using Indotalent.Shared.Consts;
namespace Indotalent.Features.Pipeline.Expense.Cqrs;
public class UpdateExpenseValidator : AbstractValidator<UpdateExpenseRequest>
{
public UpdateExpenseValidator()
{
RuleFor(x => x.Id)
.NotEmpty().WithMessage("ID is required for update");
RuleFor(x => x.Title)
.NotEmpty().WithMessage("Expense Title is required")
.MaximumLength(GlobalConsts.StringLengthShort);
RuleFor(x => x.CampaignId)
.NotEmpty().WithMessage("Campaign is required");
}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue() => async (model, propertyName) =>
{
var result = await ValidateAsync(ValidationContext<UpdateExpenseRequest>.CreateWithOptions((UpdateExpenseRequest)model, x => x.IncludeProperties(propertyName)));
if (result.IsValid) return Array.Empty<string>();
return result.Errors.Select(e => e.ErrorMessage);
};
}