private static ValidationResult IfYesIsCheckedVotesAreSubmited(AmountOfStockSubmited amountOfStockSubmited, CumYesIs cumYesCheck) { if (cumYesCheck == CumYesIs.Checked && amountOfStockSubmited == AmountOfStockSubmited.VotesArentSubmited) { return(ValidationResult.NotFullfilled(ErrorTexts.CUMULATIVE_QUESTION_MUST_HAVE_VOTES_SUBMITED_IN_CASE_OF_YES_CHECK)); } return(ValidationResult.Fullfilled); }
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); }
public ValidationResult GetIsValidationResultFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks, bool trustExists) { var ammountOfStockSubmitedIsNoMorethatThereIsOnPack = AmmountOfStockSubmitedIsNoMorethatThereIsOnPack(amountOfStockSubmited); if (!ammountOfStockSubmitedIsNoMorethatThereIsOnPack.IsFullfilled) { return(ammountOfStockSubmitedIsNoMorethatThereIsOnPack); } var ifYesIsCheckedVotesAreSubmited = IfYesIsCheckedVotesAreSubmited(amountOfStockSubmited, cumChecks); if (!ifYesIsCheckedVotesAreSubmited.IsFullfilled) { return(ifYesIsCheckedVotesAreSubmited); } var multipleChecksArentSelectedIfVotesArentSubmited = MultipleChecksArentSelectedIfVotesArentSubmited(amountOfStockSubmited, numberOfChecks); if (!multipleChecksArentSelectedIfVotesArentSubmited.IsFullfilled) { return(multipleChecksArentSelectedIfVotesArentSubmited); } if (IsTrustSpecialCase(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, cumChecks)) { return(IsAllowedTrustSpecialCase(trustExists)); } if (packStatus == PackStatus.Simple) { return(IsSimpleAllowedCase(additionalChecks, amountOfStockSubmited, cumChecks, numberOfChecks)); } if (packStatus == PackStatus.Seller) { return(BuyerAndSellerAllowedCasesHelper.IsSellerAllowedCase(additionalChecks, amountOfStockSubmited)); } if (packStatus == PackStatus.Buyer) { return(BuyerAndSellerAllowedCasesHelper.IsBuyerAllowedCase(additionalChecks, amountOfStockSubmited)); } throw new NotSupportedException("Тип " + packStatus + " не поддерживается."); }
public string GetErrorTextFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks, bool trustExists) { return (GetIsValidationResultFor(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, cumChecks, trustExists) .ErrorText); }
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); }
// Важно! Для корректной работы, если не указаны голоса для варианта "ЗА" всегда amountOfStockSubmited должно // быть равно VotesArentSubmited, иначе могут случиться неприятности в случае NumberOfChecks.Multiple, когда // выбран вариант "ЗА" без указания голосов и "ПРОТИВ" с указанием ("ЗА" всегда должен иметь количество голосов // указанным). public bool GetIsFulfilledFor(PackStatus packStatus, AdditionalChecks additionalChecks, AmountOfStockSubmited amountOfStockSubmited, NumberOfChecks numberOfChecks, CumYesIs cumChecks, bool trustExists) { return (GetIsValidationResultFor(packStatus, additionalChecks, amountOfStockSubmited, numberOfChecks, cumChecks, trustExists) .IsFullfilled); }
/// <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); }