Ejemplo n.º 1
0
        protected override bool CreateParameters()
        {
            //  参数1:跟踪项目ID号
            OutParameters.Add(new Parameter("StorageJson", "String"));

            return(true);
        }
Ejemplo n.º 2
0
 protected override bool CreateParameters()
 {
     //  参数1:跟踪项目ID号
     InParameters.Add(new Parameter("EntryItem", "Object", "Tracking.TrackingUnit"));
     OutParameters.Add(new Parameter("ExitItem", "Object", "Tracking.TrackingUnit"));
     return(true);
 }
        protected override bool CreateParameters()
        {
            //  参数2:跟踪项目ID号
            Parameter Par2 = new Parameter("ItemID", "Int32");

            OutParameters.Add(Par2);
            return(true);
        }
Ejemplo n.º 4
0
        private DbCommand CreateCommand(SqlQuery query, out OutParameters outParameters)
        {
            if (null == query)
                throw new ArgumentNullException("query");

            string commandText = query.Text.ToString();
            if (String.IsNullOrEmpty(commandText))
                throw new ArgumentException("query, SqlQuery.Text is null");

            outParameters = null;

            this.OnPreExecuteSql(query);
            DbCommand cmd = null;
            try
            {
                cmd = this.connection.CreateCommand();

                foreach (SqlQueryParameter parameter in query.Parameters)
                {
                    DbParameter dbParameter = cmd.CreateParameter();
                    dbParameter.ParameterName = parameter.ParameterName;

                    dbParameter.IsNullable = parameter.IsNullable;

                    if (parameter.dbType.HasValue)
                        dbParameter.DbType = parameter.dbType.Value;

                    object parameterValue = parameter.Value;
                    dbParameter.Value = (null == parameterValue) ? DBNull.Value : parameterValue;

                    ParameterDirection direction = parameter.Direction;
                    dbParameter.Direction = direction;

                    cmd.Parameters.Add(dbParameter);

                    if (direction == ParameterDirection.InputOutput || direction == ParameterDirection.Output)
                    {
                        if (null == outParameters)
                            outParameters = new OutParameters();
                        outParameters.Add(parameter, dbParameter);
                    }
                }

                cmd.CommandText = commandText;
                cmd.CommandType = query.CmdType;
            }
            catch (Exception)
            {
                if (null != cmd) cmd.Dispose();
                throw;
            }

            this.OnCommandCreated(cmd);

            return cmd;
        }
 protected override bool CreateParameters()
 {
     for (int i = 0; i < 10; i++)
     {
         Parameter Par = new Parameter("ItemID" + (i + 1).ToString(), "String");
         parameters.Add("ItemID" + (i + 1).ToString());
         OutParameters.Add(Par);
     }
     return(true);
 }
Ejemplo n.º 6
0
        public void TestOutputParameters()
        {
            var input = new InOutParameters {
                In = 5
            };
            var output = new OutParameters();

            var result = Connection().InsertAsync(InOutParameters.ProcName, input, outputParameters: output).Result;

            input.Verify(output);
        }
Ejemplo n.º 7
0
        public void TestOutputParameters()
        {
            var input = new InOutParameters {
                In = 5
            };
            var output = new OutParameters();

            Connection().Query <Beer>(InOutParameters.ProcName, input, outputParameters: output);

            input.Verify(output);
        }
Ejemplo n.º 8
0
        public void TestOutputParameters()
        {
            var input = new InOutParameters {
                In = 5
            };
            var output = new OutParameters();

            Connection().ExecuteAsync(InOutParameters.ProcName, input, outputParameters: output).Wait();

            input.Verify(output);
        }
        protected override bool CreateParameters()
        {
            Parameter Par1 = new Parameter("QueueName", "String");

            InParameters.Add(Par1);
            Parameter Par2 = new Parameter("QueueLength", "int32");

            OutParameters.Add(Par2);

            return(true);
        }
        protected override bool CreateParameters()
        {
            Parameter Par1 = new Parameter("ItemID", "Int32");

            InParameters.Add(Par1);

            Parameter Par2 = new Parameter("Result", "bool");

            OutParameters.Add(Par2);
            return(true);
        }
Ejemplo n.º 11
0
        public void TestOutputParameters()
        {
            var input = new InOutParameters {
                In = 5
            };
            var output = new OutParameters();

            var result = Connection().ExecuteScalar <int>(InOutParameters.ProcName, input, outputParameters: output);

            Assert.AreEqual(input.In, result);
            input.Verify(output);
        }
        protected override bool CreateParameters()
        {
            ////  参数1:查询索引
            //Parameter Par1 = new Parameter("Index", "Int16");
            //InParameters.Add(Par1);

            //  参数2:查询结果
            Parameter Par2 = new Parameter("ItemID", "String");

            OutParameters.Add(Par2);
            return(true);
        }
        public void TestOutputParameters()
        {
            var input = new InOutParameters {
                In = 5
            };
            var output = new OutParameters();

            // notice here how we don't actually read the recordset, but the framework goes all the way to the end for us
            Connection().QueryAsync(InOutParameters.ProcName, input, reader => 1, outputParameters: output).Wait();

            input.Verify(output);
        }
Ejemplo n.º 14
0
        public void TestOutputParametersInList()
        {
            var list  = new List <int>();
            var input = new InOutParameters {
                In = 5
            };
            var output = new OutParameters();

            var result = Connection().InsertList(InOutParameters.ProcName, list, input, outputParameters: output);

            input.Verify(output);
        }
Ejemplo n.º 15
0
        private new bool CreateParameters()    //必须使用New以区分BaseAction里的
        {
            //  参数1:跟踪项目ID号
            try
            {
                InParameters.Add(new Parameter("SubGroupID", "Int16"));
                OutParameters.Add(new Parameter("ExitItem", "Object", OwnerStorage.ItemType));

                return(true);
            }
            catch (Exception ex)
            {
                LOG.Error(string.Format("创建ExitStorageGroupAction参数 出错{0}", ex));
                return(false);
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Add a method to the object, will remove the previously set method if there is one. Returns the initial value set
        /// </summary>
        /// <param name="methodName">The method to mock</param>
        /// <param name="returnValue">The actual value to return</param>
        private void UpsertMethod(string methodName, object returnValue, Dictionary <string, object> outParams)
        {
            Func <object> del = () => returnValue;

            if (MockedMembers.ContainsKey(methodName))
            {
                MockedMembers.Remove(methodName);
            }

            //Always remove them if we're overloading an existing mock
            if (OutParameters.ContainsKey(methodName))
            {
                OutParameters.Remove(methodName);
            }

            //Only add this if there are any to bother with
            if (outParams.Any())
            {
                OutParameters.Add(methodName, outParams);
            }

            MockedMembers.Add(methodName, del);
        }
Ejemplo n.º 17
0
        public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
        {
            var methodKeyName = binder.Name;
            var baseMethod    = BaseType.GetMethod(binder.Name);

            result = null;

            //Do we meet all the conditions outlined for this method
            if (Conditions.Any(cond => cond.Item1.Equals(methodKeyName)))
            {
                var method = BaseType.GetMethods().First(m => m.Name.Equals(methodKeyName));

                if (method != null)
                {
                    var parameters = method.GetParameters();

                    int metConditions = 0;
                    for (int i = 0; i < parameters.Count(); i++)
                    {
                        var argument = parameters.ElementAt(i);
                        var value    = args[i];

                        foreach (var condition in Conditions.Where(cond => cond.Item1.Equals(methodKeyName) && cond.Item2.Equals(argument.Name, StringComparison.OrdinalIgnoreCase)))
                        {
                            if (condition.Item3(value))
                            {
                                metConditions++;
                            }
                        }
                    }

                    if (metConditions.Equals(Conditions.Count(cond => cond.Item1.Equals(methodKeyName))))
                    {
                        //We have a match
                        methodKeyName = string.Format("{0}_{1}", binder.Name, Serialization.GenerateHashKey(Conditions.Where(cond => cond.Item1.Equals(methodKeyName)).ToArray()));
                    }
                }
            }

            //Do we want to throw an error?
            if (ExpectedErrors.Any(x => methodKeyName.Equals(x.Item1)))
            {
                Exception instance = (Exception)Activator.CreateInstance(ExpectedErrors.First(x => methodKeyName.Equals(x.Item1)).Item2);

                throw instance;
            }

            //Do we exist in the list of naked or conditional-hash-appended methods
            if (MockedMembers.ContainsKey(methodKeyName) && MockedMembers[methodKeyName] is Delegate)
            {
                Delegate del = MockedMembers[methodKeyName] as Delegate;

                result = del.DynamicInvoke();

                //Try and set out parameters
                if (OutParameters.ContainsKey(methodKeyName) && baseMethod.GetParameters().Any(param => param.IsOut))
                {
                    var outValues = OutParameters[methodKeyName];

                    int i = -1;
                    foreach (var param in baseMethod.GetParameters())
                    {
                        i++;

                        if (!param.IsOut || !outValues.ContainsKey(param.Name))
                        {
                            continue;
                        }

                        args[i] = (object)outValues[param.Name];
                    }
                }

                return(true);
            }

            //We don't exist in the list at all just try to call the base method
            return(base.TryInvokeMember(binder, args, out result));
        }