protected override bool CreateParameters() { // 参数1:跟踪项目ID号 OutParameters.Add(new Parameter("StorageJson", "String")); return(true); }
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); }
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); }
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); }
public void TestOutputParameters() { var input = new InOutParameters { In = 5 }; var output = new OutParameters(); Connection().Query <Beer>(InOutParameters.ProcName, input, outputParameters: output); input.Verify(output); }
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); }
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); }
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); }
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); } }
/// <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); }
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)); }