public string GetErrorTextFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool trustExists) { return(GetValidationResultFor(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, trustExists) .ErrorText); }
public bool GetIsFulfilledFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool trustExists) { return(GetValidationResultFor(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, trustExists) .IsFullfilled); }
private ValidationResult GetValidationResultFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool trustExists) { var ammountOfStockSubmitedIsNoMorethatThereIsOnPack = AmmountOfStockSubmitedIsNoMorethatThereIsOnPack(amountOfStockSubmited); if (!ammountOfStockSubmitedIsNoMorethatThereIsOnPack.IsFullfilled) { return(ammountOfStockSubmitedIsNoMorethatThereIsOnPack); } var multipleChecksArentSelectedIfVotesArentSubmited = MultipleChecksArentSelectedIfVotesArentSubmited(amountOfStockSubmited, numberOfChecks); if (!multipleChecksArentSelectedIfVotesArentSubmited.IsFullfilled) { return(multipleChecksArentSelectedIfVotesArentSubmited); } if (IsTrustSpecialCase(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks)) { return(IsAllowedTrustSpecialCase(trustExists)); } if (packStatus == PackStatus.Simple) { return(IsSimpleAllowedCase(additionalChecks, amountOfStockSubmited)); } if (packStatus == PackStatus.Seller) { return(BuyerAndSellerAllowedCasesHelper.IsSellerAllowedCase(additionalChecks, amountOfStockSubmited)); } if (packStatus == PackStatus.Buyer) { return(BuyerAndSellerAllowedCasesHelper.IsBuyerAllowedCase(additionalChecks, amountOfStockSubmited)); } throw new NotSupportedException("“ип " + packStatus + " не поддерживаетс¤."); }
public void MatrixTest(Status status, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, bool expected) { var packStatus = GetPackStatusFor(status); // Специальный случай для голосования по доверенности if (packStatus == PackStatus.Simple && additionalChecks == AdditionalChecks.HasTrust && amountOfStockSubmited == AmountOfStockSubmited.LessOrEqualThanThereIsOnPack && numberOfChecks == NumberOfChecks.Single) { HandleTrustExistanceSpecialCase(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks); return; } var chain1 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => true, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false); var chain2 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => false, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain1), Is.EqualTo(expected)); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain2), Is.EqualTo(expected)); }
private static bool IsExceptionalCaseForSimplePack(AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks) { return(additionalChecks == AdditionalChecks.None /*&& * amountOfStockSubmited == AmountOfStockSubmited.MoreThanThereIsOnPack*/ && numberOfChecks == NumberOfChecks.Single && cumChecks == CumYesIs.NotChecked); }
private static ValidationResult MultipleChecksArentSelectedIfVotesArentSubmited(AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks) { if (numberOfChecks == NumberOfChecks.Multiple && amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { return(ValidationResult.NotFullfilled(ErrorTexts.WITH_MULTIPLE_CHECKS_VOTES_MUST_BE_SUBMITED)); } return(ValidationResult.Fullfilled); }
private static bool IsTrustSpecialCase(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks) { //—пециальный случай дл¤ проверки наличи¤ доверенности return(packStatus == PackStatus.Simple && additionalChecks == AdditionalChecks.HasTrust && amountOfStockSubmited == AmountOfStockSubmited.LessOrEqualThanThereIsOnPack && numberOfChecks == NumberOfChecks.Single); }
private bool IsTrustSpecialCase(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks) { return(packStatus == PackStatus.Simple && additionalChecks == AdditionalChecks.HasTrust && amountOfStockSubmited == AmountOfStockSubmited.LessOrEqualThanThereIsOnPack && cumChecks == CumYesIs.NotChecked); }
/// <summary> /// Случай для обычного пакета /// </summary> private static ValidationResult IsSimpleAllowedCase(AdditionalChecks checks, AmountOfStockSubmited amountOfStockSubmited, CumYesIs cumChecks, NumberOfChecks numberOfChecks) { if (amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { if (cumChecks == CumYesIs.NotChecked) { return(ValidationResult.Fullfilled); } else { return(ValidationResult.NotFullfilled(ErrorTexts.CUMULATIVE_QUESTION_MUST_HAVE_VOTES_SUBMITED_IN_CASE_OF_YES_CHECK)); } } if (checks.IsSet(AdditionalChecks.HasTrust)) { if (checks.IsSet(AdditionalChecks.HasInstructions) || checks.IsSet(AdditionalChecks.NotWholeStockWasPassed)) { //Установлен только вариант "ЗА" if (cumChecks == CumYesIs.Checked && numberOfChecks == NumberOfChecks.Single) { return(ValidationResult.Fullfilled); } else { return(ValidationResult.NotFullfilled(ErrorTexts.INCORRECT_FILLING)); } } } return(ValidationResult.Fullfilled); }
private static void HandleTrustExistanceSpecialCase(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks) { var chain1 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => true, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false ); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain1), Is.EqualTo(true)); var chain2 = GraphProvider.GetQSimpleQSepAndHierSubQTableRuleChain(null, null, () => packStatus, () => false, () => amountOfStockSubmited, () => numberOfChecks, () => additionalChecks, () => false ); Assert.That(RuleChainFulfilledResoveHelper.RuleChainIsFulfilled(chain2), Is.EqualTo(false)); }
/// <summary> /// Является ли особенным случаем для простого пакета /// </summary> private static bool IsExceptionalCaseForSimple(AdditionalChecks additionalChecks, NumberOfChecks checks) { return(additionalChecks == AdditionalChecks.None && checks == NumberOfChecks.Single); }