public MultivariantVotingPointRule(BaseYesNoAbsPoint point, BulletinAdditionalMarks additionalMarks, Func <NumberOfChecks> numberOfChecks, Func <AdditionalChecks> additionalChecks) { _numberOfChecks = numberOfChecks; _additionalChecks = additionalChecks; Point = point; AdditionalMarks = additionalMarks; }
public QSimpleQSepAndHierSubQFractionDistributionRule(BaseYesNoAbsPoint point, Func <List <FractionLong> > allowedVotesAmountFractions, bool isADR, Func <bool> hasInstructions) { _point = point; _hasInstructions = hasInstructions; _isADR = isADR; _allowedVotesAmountFractions = allowedVotesAmountFractions; }
private static RuleNode GetRuleForBaseYesNoAbstainedPoint(BaseYesNoAbsPoint qsp, BulletinScreenModelBase bulletin, FractionLong amountOfStock, bool isQSimpWithPrivDividends = false) { return(RuleBuilder. RootRule(new PointShouldHaveAtLeastOneSelectionRule(qsp)) .AddRule(GetQSimpleQSepAndHierSubQTableRuleChain(qsp, bulletin, amountOfStock, isQSimpWithPrivDividends)) .GetRoot()); }
public static RuleNode GetQSimpleQSepAndHierSubQTableRuleChain(BaseYesNoAbsPoint point, BulletinAdditionalMarks additionalMarks, Func <PackStatus> packStatus, Func <bool> trustExists, Func <AmountOfStockSubmited> amountOfStockSubmited, Func <NumberOfChecks> numberOfChecks, Func <AdditionalChecks> additionalChecks, Func <bool> isQSimpWithPrivDividends) { return(RuleBuilder .RootRule(new InCaseOfSimplePackPointWithNoAdditionalMarksAlwaysPassesRule(point, additionalMarks, packStatus, numberOfChecks, additionalChecks, isQSimpWithPrivDividends)) .AddRule(new MultivariantVotingPointRule(point, additionalMarks, numberOfChecks, additionalChecks)) .AddRule(new QSimpleQSepAndHierSubQTableRule(point, additionalMarks, packStatus, trustExists, amountOfStockSubmited, numberOfChecks, additionalChecks)) .GetRoot()); }
public AmountOfStockSubmited GetAmountOfStockSubmited(BaseYesNoAbsPoint point, FractionLong allowedVotesAmount) { var pairs = new List <KeyValuePair <bool, FractionLong> > { new KeyValuePair <bool, FractionLong>(point.YesCheckBoxField.Value, point.YesVotesField.Value), new KeyValuePair <bool, FractionLong>(point.NoCheckBoxField.Value, point.NoVotesField.Value), new KeyValuePair <bool, FractionLong>(point.AbstainedCheckBoxField.Value, point.AbstainedVotesField.Value), }; return(GetAmountOfStockSubmittedFor(pairs, allowedVotesAmount)); }
private static RuleNode GetQSimpleQSepAndHierSubQTableRuleChain(BaseYesNoAbsPoint point, BulletinScreenModelBase bulletin, FractionLong amountOfStock, bool isQSimpWithPrivDividends = false) { var additionalMarks = bulletin.AdditionalMarks; Func <PackStatus> packStatus = () => bulletin.PackStatus; Func <NumberOfChecks> numberOfChecks = () => GetNumberOfChecks(point); Func <AdditionalChecks> additionalChecks = () => BulletinAdditionalMarksToAdditionalChecksEnumConverter.ConvertToAdditionalChecksEnum(bulletin.AdditionalMarks); Func <bool> trustExists = () => bulletin.TrustExists; Func <AmountOfStockSubmited> amountOfStockSubmited = () => AmountOfStockSubmitedCalculator.GetAmountOfStockSubmited(point, amountOfStock); Func <bool> isQSimpWithPrivDividendsFunc = () => isQSimpWithPrivDividends; return(GetQSimpleQSepAndHierSubQTableRuleChain(point, additionalMarks, packStatus, trustExists, amountOfStockSubmited, numberOfChecks, additionalChecks, isQSimpWithPrivDividendsFunc)); }
public InCaseOfSimplePackPointWithNoAdditionalMarksAlwaysPassesRule(BaseYesNoAbsPoint point, BulletinAdditionalMarks additionalMarks, Func <PackStatus> packStatus, Func <NumberOfChecks> numberOfChecks, Func <AdditionalChecks> additionalChecks, Func <bool> isQSimpWithPrivDividends) { Point = point; AdditionalMarks = additionalMarks; _status = packStatus; _numberOfChecks = numberOfChecks; _additionalChecks = additionalChecks; _isQSimpWithPrivDividends = isQSimpWithPrivDividends; }
public QSimpleQSepAndHierSubQTableRule(BaseYesNoAbsPoint point, BulletinAdditionalMarks bulletinAdditionalMarks, Func <PackStatus> packStatus, Func <bool> trustExists, Func <AmountOfStockSubmited> amountOfStockSubmited, Func <NumberOfChecks> numberOfChecks, Func <AdditionalChecks> additionalChecks) { Point = point; AdditionalMarks = bulletinAdditionalMarks; PackStatus = packStatus; TrustExists = trustExists; AmountOfStockSubmited = amountOfStockSubmited; NumberOfChecks = numberOfChecks; AddtitionalChecks = additionalChecks; }
public void BaseYesNoAbsPointTests(bool yesCheck, int yesVotes, bool noCheck, int noVotes, bool absCheck, int absVotes, AmountOfStockSubmited expected) { var allowedVotesAmount = new FractionLong(100); var baseYesNoAbstainedPoint = new BaseYesNoAbsPoint( Fields.CheckBoxDocField(yesCheck), Fields.CheckBoxDocField(noCheck), Fields.CheckBoxDocField(absCheck), Fields.VotesDocField(yesVotes), Fields.VotesDocField(noVotes), Fields.VotesDocField(absVotes)); var result = _calculator.GetAmountOfStockSubmited(baseYesNoAbstainedPoint, allowedVotesAmount); Assert.That(result, Is.EqualTo(expected)); }
private static NumberOfChecks GetNumberOfChecks(BaseYesNoAbsPoint point) { var checks = new List <CheckBoxDocField> { point.YesCheckBoxField, point.NoCheckBoxField, point.AbstainedCheckBoxField }; if (checks.All(c => c.Value == false)) { throw new ArgumentOutOfRangeException(string.Empty, "�� ����� �� ����� �����"); } if (checks.Where(c => c.Value == true).Count() == 1) { return(NumberOfChecks.Single); } else { return(NumberOfChecks.Multiple); } }
public PointShouldHaveAtLeastOneSelectionRule(BaseYesNoAbsPoint point) { Point = point; }
public AdrMustHaveExactVotesSpreadedForQSimple(BaseYesNoAbsPoint point, Func <FractionLong> allowedVotesAmount, bool isADRBulletin) { _allowedVotesAmount = allowedVotesAmount; _isADRBulletin = isADRBulletin; Point = point; }
private static void SetVoteFieldsThatDontHaveCorrespondingChecksSetAsWasntChecked(BaseYesNoAbsPoint point) { var additionalChecks = ((BulletinScreenModelBase)point.ParentRootModel).AdditionalMarks; var additionalChecksAreUsed = additionalChecks.HasInstructions.Value || additionalChecks.NotWholeStockWasPassed.Value || additionalChecks.HasTrust.Value; var pairs = new Dictionary <CheckBoxDocField, VotesDocField> { { point.YesCheckBoxField, point.YesVotesField }, { point.NoCheckBoxField, point.NoVotesField }, { point.AbstainedCheckBoxField, point.AbstainedVotesField }, }; pairs.ForEach(p => { if (p.Key.Value == false || !additionalChecksAreUsed) { p.Value.ErrorLevel = ErrorLevel.WasntChecked; } }); }
public QSimpleQSepAndHierSubQWarningRule(BaseYesNoAbsPoint point, BulletinAdditionalMarks additionalMarks, Func <FractionLong> allowedVotesAmount) { _point = point; AdditionalMarks = additionalMarks; _allowedVotesAmount = allowedVotesAmount; }