using CH.CQRS.Service.Energy; using CH.CQRS.Service.Energy.Options; using FluentValidation; using OpenHarbor.CQRS.Abstractions; namespace CH.CQRS.Command.Energy; public class UpdateEnergyRateExceptionCommand { public long EnergyRateExceptionId { get; set; } public decimal EnergyThreshold { get; set; } public string? ResetType { get; set; } public DateTime? StartedAt { get; set; } public DateTime? EndedAt { get; set; } } public class UpdateEnergyRateExceptionCommandHandler(EnergyService energyService) : ICommandHandler { public Task HandleAsync(UpdateEnergyRateExceptionCommand command, CancellationToken cancellationToken = new CancellationToken()) { return energyService.UpdateEnergyRateExceptionAsync(new UpdateEnergyRateExceptionCommandOptions { EnergyRateExceptionId = command.EnergyRateExceptionId, EnergyThreshold = command.EnergyThreshold, ResetType = command.ResetType, StartedAt = command.StartedAt, EndedAt = command.EndedAt },cancellationToken); } } public class UpdateEnergyRateExceptionCommandValidator : AbstractValidator { public UpdateEnergyRateExceptionCommandValidator() { RuleFor(command => command.EnergyRateExceptionId) .NotEmpty(); RuleFor(command => command.EnergyThreshold) .GreaterThan(0); } }