/// <summary>
 /// Gets value for given business object's property using reflection.
 /// </summary>
 /// <param name="businessObject"></param>
 /// <param name="propertyName"></param>
 /// <returns></returns>
 protected object GetPropertyValue(BusinessObject.BusinessObject businessObject)
 {
     return(businessObject.GetType().GetProperty(PropertyName).GetValue(businessObject, null));
 }
Exemple #2
0
        public override bool Validate(BusinessObject.BusinessObject businessObject)
        {
            try
            {
                string propValue1 = businessObject.GetType().GetProperty(PropertyName).GetValue(businessObject, null).ToString();
                string propValue2 = businessObject.GetType().GetProperty(OtherPropertyName).GetValue(businessObject, null).ToString();

                switch (DataType)
                {
                case ValidationDataType.Integer:

                    int ival1 = int.Parse(propValue1);
                    int ival2 = int.Parse(propValue2);

                    switch (Operator)
                    {
                    case ValidationOperator.Equal: return(ival1 == ival2);

                    case ValidationOperator.NotEqual: return(ival1 != ival2);

                    case ValidationOperator.GreaterThan: return(ival1 > ival2);

                    case ValidationOperator.GreaterThanEqual: return(ival1 >= ival2);

                    case ValidationOperator.LessThan: return(ival1 < ival2);

                    case ValidationOperator.LessThanEqual: return(ival1 <= ival2);
                    }
                    break;

                case ValidationDataType.Double:

                    double dval1 = double.Parse(propValue1);
                    double dval2 = double.Parse(propValue2);

                    switch (Operator)
                    {
                    case ValidationOperator.Equal: return(dval1 == dval2);

                    case ValidationOperator.NotEqual: return(dval1 != dval2);

                    case ValidationOperator.GreaterThan: return(dval1 > dval2);

                    case ValidationOperator.GreaterThanEqual: return(dval1 >= dval2);

                    case ValidationOperator.LessThan: return(dval1 < dval2);

                    case ValidationOperator.LessThanEqual: return(dval1 <= dval2);
                    }
                    break;

                case ValidationDataType.Decimal:

                    decimal cval1 = decimal.Parse(propValue1);
                    decimal cval2 = decimal.Parse(propValue2);

                    switch (Operator)
                    {
                    case ValidationOperator.Equal: return(cval1 == cval2);

                    case ValidationOperator.NotEqual: return(cval1 != cval2);

                    case ValidationOperator.GreaterThan: return(cval1 > cval2);

                    case ValidationOperator.GreaterThanEqual: return(cval1 >= cval2);

                    case ValidationOperator.LessThan: return(cval1 < cval2);

                    case ValidationOperator.LessThanEqual: return(cval1 <= cval2);
                    }
                    break;

                case ValidationDataType.Date:

                    DateTime tval1 = DateTime.Parse(propValue1);
                    DateTime tval2 = DateTime.Parse(propValue2);

                    switch (Operator)
                    {
                    case ValidationOperator.Equal: return(tval1 == tval2);

                    case ValidationOperator.NotEqual: return(tval1 != tval2);

                    case ValidationOperator.GreaterThan: return(tval1 > tval2);

                    case ValidationOperator.GreaterThanEqual: return(tval1 >= tval2);

                    case ValidationOperator.LessThan: return(tval1 < tval2);

                    case ValidationOperator.LessThanEqual: return(tval1 <= tval2);
                    }
                    break;

                case ValidationDataType.String:

                    int result = string.Compare(propValue1, propValue2, StringComparison.CurrentCulture);

                    switch (Operator)
                    {
                    case ValidationOperator.Equal: return(result == 0);

                    case ValidationOperator.NotEqual: return(result != 0);

                    case ValidationOperator.GreaterThan: return(result > 0);

                    case ValidationOperator.GreaterThanEqual: return(result >= 0);

                    case ValidationOperator.LessThan: return(result < 0);

                    case ValidationOperator.LessThanEqual: return(result <= 0);
                    }
                    break;
                }
                return(false);
            }
            catch { return(false); }
        }