public RequiredIfAttribute(string dependentProperty, Operator @operator, object dependentValue) : base(dependentProperty) { Operator = @operator; DependentValue = dependentValue; Metadata = OperatorMetadata.Get(Operator); }
protected override bool InternalIsValid(object value, object dependentPropertyValue) { if (Metadata.IsValid(dependentPropertyValue, DependentValue)) { return(OperatorMetadata.Get(Operator.RegExMatch).IsValid(value, Pattern)); } return(true); }
public Queue <string> Parse(string mathematicalExpression) { var operatorStack = new Stack <OperatorMetadata>(); var outputQueue = new Queue <string>(); string accumulatingNumber = string.Empty; foreach (char character in mathematicalExpression) { if (OperatorManifest.IsOperator(character)) { outputQueue.Enqueue(accumulatingNumber); accumulatingNumber = string.Empty; OperatorMetadata operatorMetadata = OperatorManifest.Parse(character); while (operatorStack.Count > 0 && operatorStack.Peek().Priority >= operatorMetadata.Priority) { OperatorMetadata poppedOperator = operatorStack.Pop(); outputQueue.Enqueue(poppedOperator.Symbol); } operatorStack.Push(operatorMetadata); } else { accumulatingNumber += character; } } if (!string.IsNullOrEmpty(accumulatingNumber)) { outputQueue.Enqueue(accumulatingNumber); } while (operatorStack.Count > 0) { outputQueue.Enqueue(operatorStack.Pop().Symbol); } return(outputQueue); }
public IsAttribute(Operator @operator, string dependentProperty) : base(dependentProperty) { Operator = @operator; PassOnNull = false; _metadata = OperatorMetadata.Get(Operator); }