Disco.Services.DocumentTemplateExpressionExtensions.FilterExpressionMatches C# (CSharp) Method

FilterExpressionMatches() public static method

public static FilterExpressionMatches ( this dt, object Data, DiscoDataContext Database, User User, System TimeStamp, DocumentState State ) : bool
dt this
Data object
Database Disco.Data.Repository.DiscoDataContext
User Disco.Models.Repository.User
TimeStamp System
State Disco.Models.Services.Documents.DocumentState
return bool
        public static bool FilterExpressionMatches(this DocumentTemplate dt, object Data, DiscoDataContext Database, User User, System.DateTime TimeStamp, DocumentState State)
        {
            if (!string.IsNullOrEmpty(dt.FilterExpression))
            {
                var compiledExpression = dt.FilterExpressionFromCache();
                var evaluatorVariables = Expression.StandardVariables(dt, Database, User, TimeStamp, State);
                try
                {
                    var er = compiledExpression.EvaluateFirst<object>(Data, evaluatorVariables);
                    if (er is bool)
                    {
                        return (bool)er;
                    }
                    bool erBool;
                    if (bool.TryParse(er.ToString(), out erBool))
                    {
                        return erBool;
                    }
                }
                catch
                {
                    return false;
                }
            }
            return true;
        }