This commit is contained in:
parent
b7eeb13040
commit
c2bb7e961c
2 changed files with 38 additions and 1 deletions
|
|
@ -0,0 +1,34 @@
|
|||
package ru.spcex.clearing.dflt.management.component.validation;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
import ru.clearing.classes.statics.data.misc.OvernightSettings;
|
||||
import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.misc.OvernightSettingsNewRequest;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
public class OvernightSettingAlreadyPresent implements IValidationRule<ImdgValidationContext<OvernightSettingsNewRequest>> {
|
||||
|
||||
public static final OvernightSettingAlreadyPresent INSTANCE = new OvernightSettingAlreadyPresent();
|
||||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<OvernightSettingsNewRequest> ctx) {
|
||||
OvernightSettingsNewRequest validatedObject = ctx.getValidatedObject();
|
||||
Imdg<OvernightSettings> osImdg = ctx.obtainMap(IMDGDistributedNames.Map_OvernightSettings, OvernightSettings.class);
|
||||
ImdgPredicateBuilder pb = osImdg.predicateBuilder();
|
||||
|
||||
Collection<OvernightSettings> alreadyPresentOs = osImdg.getCollectionObjectsByPredicate(pb.and(
|
||||
pb.equals("market", validatedObject.getMarket()),
|
||||
pb.equals("companyId", validatedObject.getCompanyId())
|
||||
));
|
||||
if (!alreadyPresentOs.isEmpty()) {
|
||||
return of(DefaultManagementErrors.RecordAlreadyPresent);
|
||||
}
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
|
|
@ -16,6 +16,7 @@ import ru.clearing.platform.dictionary.OvernightTypeDictionary;
|
|||
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyByCompanyAndTcrAlreadyPresent;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyPLBLCheck;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyValidationStored;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.OvernightSettingAlreadyPresent;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.OvernightTypeChanged;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.QuantityLotGreaterThanZero;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.SpotPairPresent;
|
||||
|
|
@ -99,7 +100,8 @@ public class ValidationConfig {
|
|||
DefaultManagementErrors.DictionaryNotFound,
|
||||
true
|
||||
),
|
||||
DictionaryPresentRule.instance("overnightType", OvernightSettingsNewRequest::getOvernightType, IMDGDistributedNames.Map_OvernightTypeDictionary, OvernightTypeDictionary.class, DefaultManagementErrors.RequiredFieldIsEmpty, DefaultManagementErrors.DictionaryNotFound, true) //fixme
|
||||
DictionaryPresentRule.instance("overnightType", OvernightSettingsNewRequest::getOvernightType, IMDGDistributedNames.Map_OvernightTypeDictionary, OvernightTypeDictionary.class, DefaultManagementErrors.RequiredFieldIsEmpty, DefaultManagementErrors.DictionaryNotFound, true), //fixme
|
||||
OvernightSettingAlreadyPresent.INSTANCE
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -114,6 +116,7 @@ public class ValidationConfig {
|
|||
ctx.addImdg(IMDGDistributedNames.Map_OvernightTypeDictionary, osTypeDictionaryImdg);
|
||||
ctx.addImdg(IMDGDistributedNames.Map_OvernightSettings, overnightSettingsImdg);
|
||||
//fixme error codes
|
||||
//fixme в ТЗ нет проверки OvernightSettingAlreadyPresent - скорее всего ошибка
|
||||
return new ValidatorImpl<>(ctx,
|
||||
IdPresentRule.instance("companyId",
|
||||
OvernightSettingsUpdateRequest::getCompanyId,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue