etreschenkov 2026-05-19 19:00:02 +03:00
parent 564bb58e2c
commit faf051a085

View file

@ -11,6 +11,7 @@ import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.imdg.validation.ImdgValidationContext;
import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.validation.IValidationRule; import ru.spcex.platform.utils.validation.IValidationRule;
public class SpotPairPresent implements IValidationRule<ImdgValidationContext<OrderCurrencyUpdateRequest>> { public class SpotPairPresent implements IValidationRule<ImdgValidationContext<OrderCurrencyUpdateRequest>> {
@ -19,6 +20,11 @@ public class SpotPairPresent implements IValidationRule<ImdgValidationContext<Or
@Override @Override
public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) { public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) {
OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency); OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency);
OrderStatus orderStatus = IEnumKey.getEnumByKey(OrderStatus.class, oc.getStatus());
if (OrderStatus.REJECTED == orderStatus || OrderStatus.FILL == orderStatus) {
return of(DefaultManagementErrors.OperationNotAllowed);
}
if (!OvernightType.SPOT.equalsByKey(oc.getOvernightType())) { if (!OvernightType.SPOT.equalsByKey(oc.getOvernightType())) {
return empty(); return empty();
} }