Exemple #1
0
		public override bool IsExpression(Expression expression, int level, RequestFor testFlag)
		{
			switch (testFlag)
			{
				case RequestFor.SubQuery : return true;
			}

			return base.IsExpression(expression, level, testFlag);
		}
Exemple #2
0
            public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                switch (requestFlag)
                {
                case RequestFor.Expression: return(true);
                }

                return(false);
            }
            public IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                switch (requestFlag)
                {
                case RequestFor.Expression: return(IsExpressionResult.True);

                default: return(IsExpressionResult.False);
                }
            }
            public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                switch (requestFlag)
                {
                case RequestFor.Root: return(expression == Lambda.Parameters[0]);
                }

                return(false);
            }
Exemple #5
0
            public bool IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                switch (requestFlag)
                {
                case RequestFor.Expression: return(true);

                default: return(false);
                }
            }
Exemple #6
0
            public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                if (expression == null)
                {
                    switch (requestFlag)
                    {
                    case RequestFor.Expression:
                    case RequestFor.Field: return(false);
                    }
                }

                throw new NotImplementedException();
            }
Exemple #7
0
            public IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                if (expression == null)
                {
                    switch (requestFlag)
                    {
                    case RequestFor.Expression:
                    case RequestFor.Field: return(IsExpressionResult.False);
                    }
                }

                return(IsExpressionResult.False);
            }
Exemple #8
0
            public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                switch (requestFlag)
                {
                case RequestFor.Expression:
                case RequestFor.Root:
                    if (expression == Lambda.Parameters[1])
                    {
                        return(true);
                    }
                    break;
                }

                return(base.IsExpression(expression, level, requestFlag));
            }
        public IsExpressionResult IsExpression(Expression?expression, int level, RequestFor requestFlag)
        {
            if (requestFlag != RequestFor.Field)
            {
                return(IsExpressionResult.False);
            }

            if (expression != null)
            {
                if (expression is ParameterExpression)
                {
                    throw new NotImplementedException();
                }
            }

            throw new NotImplementedException();
        }
Exemple #10
0
            public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                if (Collection != null)
                {
                    if (expression == null)
                    {
                        return(Collection.IsExpression(expression, level, requestFlag));
                    }

                    var root = expression.GetRootObject();

                    if (root != Lambda.Parameters[0])
                    {
                        return(Collection.IsExpression(expression, level, requestFlag));
                    }
                }

                return(base.IsExpression(expression, level, requestFlag));
            }
Exemple #11
0
 private static bool CheckForProtocolMessage()
 {
     string[] arguments = Environment.GetCommandLineArgs();
     if (arguments.Length > 1)
     {
         // Format = "Owf:OpenForm?id=111"
         ClsCommon.WriteLog(arguments[0]);
         string[] args = arguments[1].Split(':');
         if (args[0].Trim().ToUpper() == "TREZLERECORDER" && args.Length > 1)
         { // Means this is a URL protocol
             string[] actionDetail = args[1].Split('?');
             if (actionDetail.Length > 1)
             {
                 switch (actionDetail[0].Trim().ToUpper())
                 {
                 case "OPENFORM":
                     string[] details = actionDetail[1].Split('=');
                     if (details.Length > 1)
                     {
                         if (details[0] == "IdRecord")
                         {
                             eRequestFor = RequestFor.VideoRecording;
                         }
                         else
                         {
                             eRequestFor = RequestFor.ScreenRecording;
                         }
                         if (actionDetail.Length > 2)
                         {
                             exestring = actionDetail[2].Split('=')[1];
                         }
                         string id = details[1].Trim();
                         ClsCommon.UserId = id;
                         return(true);
                     }
                     break;
                 }
             }
         }
     }
     return(false);
 }
Exemple #12
0
		public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
		{
			switch (requestFlag)
			{
				case RequestFor.Root        : return expression == Lambda.Parameters[0];

				case RequestFor.Association :
				case RequestFor.Object      :
				case RequestFor.Field       :
				case RequestFor.Expression  :
					{
						var levelExpression = expression.GetLevelExpression(level);

						return levelExpression == expression ?
							Sequence.IsExpression(null,       0,         requestFlag) :
							Sequence.IsExpression(expression, level + 1, requestFlag);
					}
			}

			return false;
		}
Exemple #13
0
        public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
        {
            switch (requestFlag)
            {
            case RequestFor.Root: return(expression == Lambda.Parameters[0]);

            case RequestFor.Association:
            case RequestFor.Object:
            case RequestFor.Field:
            case RequestFor.Expression:
            {
                var levelExpression = expression.GetLevelExpression(level);

                return(levelExpression == expression?
                       Sequence.IsExpression(null, 0, requestFlag) :
                           Sequence.IsExpression(expression, level + 1, requestFlag));
            }
            }

            return(false);
        }
		public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
		{
			switch (requestFlag)
			{
				case RequestFor.Root        : return new IsExpressionResult(Lambda.Parameters.Count > 0 && expression == Lambda.Parameters[0]);

				case RequestFor.Table       :
				case RequestFor.Association :
				case RequestFor.Object      :
				case RequestFor.GroupJoin   :
				case RequestFor.Field       :
				case RequestFor.Expression  :
					{
						var levelExpression = expression.GetLevelExpression(level);

						return levelExpression == expression ?
							Sequence.IsExpression(null,       0,         requestFlag) :
							Sequence.IsExpression(expression, level + 1, requestFlag);
					}
			}

			return IsExpressionResult.False;
		}
Exemple #15
0
            public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                if (level != 0)
                {
                    var levelExpression = expression.GetLevelExpression(level);

                    if (levelExpression.NodeType == ExpressionType.MemberAccess)
                    {
                        var ma = (MemberExpression)levelExpression;

                        if (ma.Member.Name == "Key" && ma.Member.DeclaringType == _groupingType)
                        {
                            return(ReferenceEquals(levelExpression, expression)
                                ? _key.IsExpression(null, 0, requestFlag)
                                : _key.IsExpression(expression, level + 1, requestFlag));
                        }
                    }
                    else if (levelExpression.NodeType == ExpressionType.Call)
                    {
                        if (requestFlag == RequestFor.Expression)
                        {
                            return(IsExpressionResult.True);
                        }
                    }
                }

                return(IsExpressionResult.False);
            }
			public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
			{
				return Sequence.IsExpression(expression, level, requestFlag);
			}
Exemple #17
0
 public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
 {
     return(base.IsExpression(expression, level, requestFlag));
 }
Exemple #18
0
 public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
 {
     throw new InvalidOperationException();
 }
Exemple #19
0
            public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor testFlag)
            {
                if (testFlag == RequestFor.Root && ReferenceEquals(expression, _unionParameter))
                {
                    return(IsExpressionResult.True);
                }

                return(base.IsExpression(expression, level, testFlag));
            }
Exemple #20
0
            public override IsExpressionResult IsExpression(Expression?expression, int level, RequestFor requestFlag)
            {
                switch (requestFlag)
                {
                case RequestFor.Root: return(new IsExpressionResult(Lambda != null && expression == Lambda.Parameters[0]));

                case RequestFor.Expression: return(IsExpressionResult.True);
                }

                return(IsExpressionResult.False);
            }
Exemple #21
0
            public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
            {
                if (expression == null)
                {
                    switch (requestFlag)
                    {
                    case RequestFor.Expression:
                    case RequestFor.Field: return(IsExpressionResult.False);
                    }
                }

                switch (requestFlag)
                {
                case RequestFor.Root: return(IsExpressionResult.False);
                }

                throw new InvalidOperationException();
            }
Exemple #22
0
 public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
 {
     throw new NotImplementedException();
 }
Exemple #23
0
 public override IsExpressionResult IsExpression(Expression?expression, int level, RequestFor requestFlag)
 {
     return(requestFlag switch
     {
         RequestFor.Root => new IsExpressionResult(Lambda != null && expression == Lambda.Parameters[0]),
         RequestFor.Expression => IsExpressionResult.True,
         _ => IsExpressionResult.False,
     });
Exemple #24
0
        public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor testFlag)
        {
            switch (testFlag)
            {
            case RequestFor.SubQuery: return(IsExpressionResult.True);
            }

            return(base.IsExpression(expression, level, testFlag));
        }
Exemple #25
0
            public IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFor)
            {
                switch (requestFor)
                {
                case RequestFor.Field:
                {
                    var table = FindTable(expression, level, false);
                    return(new IsExpressionResult(table != null && table.Field != null));
                }

                case RequestFor.Table:
                case RequestFor.Object:
                {
                    var table   = FindTable(expression, level, false);
                    var isTable =
                        table != null &&
                        table.Field == null &&
                        (expression == null || expression.GetLevelExpression(table.Level) == expression);

                    return(new IsExpressionResult(isTable, isTable ? table.Table : null));
                }

                case RequestFor.Expression:
                {
                    if (expression == null)
                    {
                        return(IsExpressionResult.False);
                    }

                    var levelExpression = expression.GetLevelExpression(level);

                    switch (levelExpression.NodeType)
                    {
                    case ExpressionType.MemberAccess:
                    case ExpressionType.Parameter:
                    case ExpressionType.Call:

                        var table = FindTable(expression, level, false);
                        return(new IsExpressionResult(table == null));
                    }

                    return(IsExpressionResult.True);
                }

                case RequestFor.Association:
                {
                    if (EntityDescriptor.Associations.Count > 0)
                    {
                        var table = FindTable(expression, level, false);
                        var isat  =
                            table != null &&
                            table.Table is AssociatedTableContext &&
                            table.Field == null &&
                            (expression == null || expression.GetLevelExpression(table.Level) == expression);

                        return(new IsExpressionResult(isat, isat ? table.Table : null));
                    }

                    return(IsExpressionResult.False);
                }
                }

                return(IsExpressionResult.False);
            }
Exemple #26
0
 public override IsExpressionResult IsExpression(Expression?expression, int level, RequestFor requestFlag)
 {
     expression = SequenceHelper.CorrectExpression(expression, this, Sequence);
     return(Sequence.IsExpression(expression, level, requestFlag));
 }
Exemple #27
0
 public abstract IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag);
        public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
        {
            switch (requestFlag)
            {
            case RequestFor.Root:
                return(new IsExpressionResult(Lambda.Parameters.Count == 1 ?
                                              ReferenceEquals(expression, Lambda.Parameters[0]) :
                                              Lambda.Parameters.Any(p => ReferenceEquals(expression, p))));

            case RequestFor.Table:
            case RequestFor.Association:
            case RequestFor.Object:
            case RequestFor.GroupJoin:
            case RequestFor.Field:
            case RequestFor.Expression:
            {
                var levelExpression = expression.GetLevelExpression(Builder.MappingSchema, level);

                if (Lambda.Parameters.Count > 1)
                {
                    for (var i = 0; i < Lambda.Parameters.Count; i++)
                    {
                        var root = expression.GetRootObject(Builder.MappingSchema);

                        if (ReferenceEquals(root, Lambda.Parameters[i]))
                        {
                            return(ReferenceEquals(levelExpression, expression) ?
                                   Sequences[i].IsExpression(null, 0, requestFlag) :
                                   Sequences[i].IsExpression(expression, level + 1, requestFlag));
                        }
                    }
                }

                return(ReferenceEquals(levelExpression, expression) ?
                       Sequence.IsExpression(null, 0, requestFlag) :
                       Sequence.IsExpression(expression, level + 1, requestFlag));
            }
            }

            return(IsExpressionResult.False);
        }
Exemple #29
0
 public override bool IsExpression(Expression expression, int level, RequestFor requestFlag)
 {
     return(false);
 }
Exemple #30
0
            public override IsExpressionResult IsExpression(Expression?expression, int level, RequestFor testFlag)
            {
                if (testFlag == RequestFor.GroupJoin && expression == null)
                {
                    return(IsExpressionResult.True);
                }

                return(base.IsExpression(expression, level, testFlag));
            }
            public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFor)
            {
                var queryContext = GetQueryContext();

                if (queryContext == null)
                {
                    return(base.IsExpression(expression, level, requestFor));
                }
                return(queryContext.IsExpression(expression, level, requestFor));
            }
Exemple #32
0
 public override IsExpressionResult IsExpression(Expression?expression, int level, RequestFor requestFlag)
 {
     return(requestFlag switch
     {
         RequestFor.SubQuery => IsExpressionResult.True,
         _ => base.IsExpression(expression, level, requestFlag),
     });
Exemple #33
0
        public override IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
        {
            switch (requestFlag)
            {
            case RequestFor.Root: return(new IsExpressionResult(Lambda.Parameters.Count > 0 && expression == Lambda.Parameters[0]));

            case RequestFor.Table:
            case RequestFor.Association:
            case RequestFor.Object:
            case RequestFor.GroupJoin:
            case RequestFor.Field:
            case RequestFor.Expression:
            {
                var levelExpression = expression.GetLevelExpression(level);

                return(levelExpression == expression?
                       Sequence.IsExpression(null, 0, requestFlag) :
                           Sequence.IsExpression(expression, level + 1, requestFlag));
            }
            }

            return(IsExpressionResult.False);
        }
Exemple #34
0
        public virtual IsExpressionResult IsExpression(Expression expression, int level, RequestFor requestFlag)
        {
            switch (requestFlag)
            {
            case RequestFor.SubQuery: return(IsExpressionResult.False);

            case RequestFor.Root:
                return(new IsExpressionResult(Sequence.Length == 1 ?
                                              ReferenceEquals(expression, Lambda.Parameters[0]) :
                                              Lambda.Parameters.Any(p => ReferenceEquals(p, expression))));
            }

            if (IsScalar)
            {
                if (expression == null)
                {
                    return(IsExpression(Body, 0, requestFlag));
                }

                switch (requestFlag)
                {
                case RequestFor.Table:
                case RequestFor.Association:
                case RequestFor.Field:
                case RequestFor.Expression:
                case RequestFor.Object:
                case RequestFor.GroupJoin:
                    return(ProcessScalar(
                               expression,
                               level,
                               (ctx, ex, l) => ctx.IsExpression(ex, l, requestFlag),
                               () => new IsExpressionResult(requestFlag == RequestFor.Expression)));

                default: return(IsExpressionResult.False);
                }
            }
            else
            {
                switch (requestFlag)
                {
                case RequestFor.Table:
                case RequestFor.Association:
                case RequestFor.Field:
                case RequestFor.Expression:
                case RequestFor.Object:
                case RequestFor.GroupJoin:
                {
                    if (expression == null)
                    {
                        if (requestFlag == RequestFor.Expression)
                        {
                            return(new IsExpressionResult(Members.Values.Any(member => IsExpression(member, 0, requestFlag).Result)));
                        }

                        return(new IsExpressionResult(requestFlag == RequestFor.Object));
                    }

                    var levelExpression = expression.GetLevelExpression(level);

                    switch (levelExpression.NodeType)
                    {
                    case ExpressionType.MemberAccess:
                    {
                        var member = ((MemberExpression)levelExpression).Member;

                        Expression memberExpression;

                        if (!Members.TryGetValue(member, out memberExpression))
                        {
                            var nm = Members.Keys.FirstOrDefault(m => m.Name == member.Name);

                            if (nm != null && member.DeclaringType.IsInterfaceEx())
                            {
                                if (member.DeclaringType.IsSameOrParentOf(nm.DeclaringType))
                                {
                                    memberExpression = Members[nm];
                                }
                                else
                                {
                                    var mdt = member.DeclaringType.GetDefiningTypes(member);
                                    var ndt = Body.Type.GetDefiningTypes(nm);

                                    if (mdt.Intersect(ndt).Any())
                                    {
                                        memberExpression = Members[nm];
                                    }
                                }
                            }

                            if (memberExpression == null)
                            {
                                return(new IsExpressionResult(requestFlag == RequestFor.Expression));
                            }
                            //throw new InvalidOperationException(
                            //	string.Format("Invalid member '{0}.{1}'", member.DeclaringType, member.Name));
                        }

                        if (ReferenceEquals(levelExpression, expression))
                        {
                            switch (memberExpression.NodeType)
                            {
                            case ExpressionType.New:
                            case ExpressionType.MemberInit:
                                return(new IsExpressionResult(requestFlag == RequestFor.Object));
                            }
                        }

                        return(ProcessMemberAccess(
                                   expression,
                                   (MemberExpression)levelExpression,
                                   level,
                                   (n, ctx, ex, l, _) => n == 0 ?
                                   new IsExpressionResult(requestFlag == RequestFor.Expression) :
                                   ctx.IsExpression(ex, l, requestFlag)));
                    }

                    case ExpressionType.Parameter:
                    {
                        var sequence  = GetSequence(expression, level);
                        var parameter = Lambda.Parameters[Sequence.Length == 0 ? 0 : Array.IndexOf(Sequence, sequence)];

                        if (ReferenceEquals(levelExpression, expression))
                        {
                            if (ReferenceEquals(levelExpression, parameter))
                            {
                                return(sequence.IsExpression(null, 0, requestFlag));
                            }
                        }
                        else if (level == 0)
                        {
                            return(sequence.IsExpression(expression, 1, requestFlag));
                        }

                        break;
                    }

                    case ExpressionType.New:
                    case ExpressionType.MemberInit: return(new IsExpressionResult(requestFlag == RequestFor.Object));

                    default: return(new IsExpressionResult(requestFlag == RequestFor.Expression));
                    }

                    break;
                }

                default: return(IsExpressionResult.False);
                }
            }

            throw new NotImplementedException();
        }