/* F E V A L U A T E */ /*---------------------------------------------------------------------------- * %%Function: FEvaluate * %%Qualified: AzLog.AzLogFilter.AzLogFilterValue.FEvaluate * %%Contact: rlittle * * ----------------------------------------------------------------------------*/ public bool FEvaluate(AzLogFilterCondition.CmpOp cmpOp, AzLogFilterValue azlfvRHS, ILogFilterItem ilf) { int nCmp; bool fNoCase; cmpOp = CmpOpGenericFromCmpOp(cmpOp, out fNoCase); if (m_vt != azlfvRHS.m_vt) { throw new Exception("cannot evaluate dissimilar value types"); } if (m_vt == ValueType.String) { nCmp = System.String.Compare(this.String(ilf), azlfvRHS.String(ilf), fNoCase); } else if (m_vt == ValueType.DateTime) { nCmp = DateTime.Compare(this.Dttm(ilf), azlfvRHS.Dttm(ilf)); } else { nCmp = 0; } switch (cmpOp) { case AzLogFilterCondition.CmpOp.Eq: return(nCmp == 0); case AzLogFilterCondition.CmpOp.SEq: return(nCmp == 0); case AzLogFilterCondition.CmpOp.Ne: return(nCmp != 0); case AzLogFilterCondition.CmpOp.SNe: return(nCmp == 0); case AzLogFilterCondition.CmpOp.Gt: return(nCmp > 0); case AzLogFilterCondition.CmpOp.Gte: return(nCmp >= 0); case AzLogFilterCondition.CmpOp.Lt: return(nCmp < 0); case AzLogFilterCondition.CmpOp.Lte: return(nCmp <= 0); } return(false); }
/* F E V A L U A T E */ /*---------------------------------------------------------------------------- %%Function: FEvaluate %%Qualified: AzLog.AzLogFilter.AzLogFilterValue.FEvaluate %%Contact: rlittle ----------------------------------------------------------------------------*/ public bool FEvaluate(AzLogFilterCondition.CmpOp cmpOp, AzLogFilterValue azlfvRHS, ILogFilterItem ilf) { int nCmp; bool fNoCase; cmpOp = CmpOpGenericFromCmpOp(cmpOp, out fNoCase); if (m_vt != azlfvRHS.m_vt) throw new Exception("cannot evaluate dissimilar value types"); if (m_vt == ValueType.String) nCmp = System.String.Compare(this.String(ilf), azlfvRHS.String(ilf), fNoCase); else if (m_vt == ValueType.DateTime) nCmp = DateTime.Compare(this.Dttm(ilf), azlfvRHS.Dttm(ilf)); else nCmp = 0; switch (cmpOp) { case AzLogFilterCondition.CmpOp.Eq: return nCmp == 0; case AzLogFilterCondition.CmpOp.SEq: return nCmp == 0; case AzLogFilterCondition.CmpOp.Ne: return nCmp != 0; case AzLogFilterCondition.CmpOp.SNe: return nCmp == 0; case AzLogFilterCondition.CmpOp.Gt: return nCmp > 0; case AzLogFilterCondition.CmpOp.Gte: return nCmp >= 0; case AzLogFilterCondition.CmpOp.Lt: return nCmp < 0; case AzLogFilterCondition.CmpOp.Lte: return nCmp <= 0; } return false; }