public void _5_Delete( string screenId, string controlId, string actionType, string userName, string ipAddress, string isolationLevel, string shipperID) { string methodName = "Delete"; // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( screenId, controlId, methodName, actionType, new MyUserInfo(userName, ipAddress)); // 情報の設定 testParameterValue.ShipperID = int.Parse(shipperID); // 戻り値 TestReturnValue testReturnValue = null; // B層呼出し LayerB layerB = new LayerB(); try { testReturnValue = (TestReturnValue)layerB.DoBusinessLogic( testParameterValue, this.SelectIsolationLevel(isolationLevel)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } // 戻り値検証。 Assert.AreEqual(testReturnValue.ErrorFlag, false); Assert.Contains(Convert.ToInt32(testReturnValue.Obj), (new int[] { 0, 1 })); }
/// <summary> /// ExecuteMultiShardQuery method to get the database records using MultiShardConnection, /// MultiShardCommand,multiShardDataReader class /// </summary> /// <param name="shardMap"></param> /// <param name="credentialsConnectionString"></param> public static void ExecuteMultiShardQuery(RangeShardMap <int> shardMap) { // Get the Shards from Shard Map manager MultiShardConfiguration.Shards = shardMap.GetShards(); TestParameterValue testParameterValue = new TestParameterValue( "MultiShard", "ExecMultiShard", "SelectAll_DR", "SqlDbWithMultiShard" + "%" + "individual" + "%" + "-", new MyUserInfo("MultiShard", "MultiShard")); // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.NoTransaction; // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 TestReturnValue testReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic( (BaseParameterValue)testParameterValue, iso); string strErrorMsg = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) strErrorMsg = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; strErrorMsg += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; strErrorMsg += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; Console.WriteLine("Inserted failed for Error message : {0}", strErrorMsg); } else { //Converts Return value object to dataTable data to display the data in screen DataTable dtTable = (DataTable)testReturnValue.Obj; int rows = 0; // Get the column names TableFormatter formatter = new TableFormatter(ShardManagementUtils.GetColumnNames(dtTable).ToArray()); foreach (DataRow dr in dtTable.Rows) { // Extract just database name from the $ShardLocation pseudocolumn to make the output formater cleaner. // Note that the $ShardLocation pseudocolumn is always the last column int shardLocationOrdinal = dr.ItemArray.Length - 1; dr.ItemArray[shardLocationOrdinal] = ShardManagementUtils.ExtractDatabaseName(dr.ItemArray[shardLocationOrdinal].ToString()); // Add values to output formatter formatter.AddRow(dr.ItemArray); rows++; } Console.WriteLine(formatter.ToString()); Console.WriteLine("({0} rows returned)", rows); } }
public void _2_SelectAll_XX( string screenId, string controlId, string methodName, string actionType, string userName, string ipAddress, string isolationLevel, string orderCol, string orderSeq) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( screenId, controlId, methodName, actionType, new MyUserInfo(userName, ipAddress)); testParameterValue.OrderColumn = orderCol; testParameterValue.OrderSequence = orderSeq; // 戻り値 TestReturnValue testReturnValue = null;; // B層呼出し LayerB layerB = new LayerB(); try { testReturnValue = (TestReturnValue)layerB.DoBusinessLogic( testParameterValue, this.SelectIsolationLevel(isolationLevel)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } // 戻り値検証。 Assert.AreEqual(testReturnValue.ErrorFlag, false); switch (methodName) { case "SelectAll_DT": DataTable dt = (DataTable)testReturnValue.Obj; Assert.GreaterOrEqual(dt.Rows.Count, 1); break; case "SelectAll_DS": DataSet ds = (DataSet)testReturnValue.Obj; Assert.AreEqual(ds.Tables.Count, 1); Assert.GreaterOrEqual(ds.Tables[0].Rows.Count, 1); break; case "SelectAll_DR": DataTable dataTable = (DataTable)testReturnValue.Obj; Assert.GreaterOrEqual(dataTable.Rows.Count, 1); break; case "SelectAll_DSQL": DataTable table = (DataTable)testReturnValue.Obj; Assert.GreaterOrEqual(table.Rows.Count, 1); break; default: break; } }
/// <summary> /// Inserts asynchronous task information to the database /// </summary> /// <returns></returns> public AsyncProcessingServiceParameterValue InsertData() { // Create array data to serilize. byte[] arrayData = { 1, 2, 3, 4, 5 }; // Sets parameters of AsyncProcessingServiceParameterValue to insert asynchronous task information. AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue("AsyncProcessingService", "InsertTask", "InsertTask", "SQL", new MyUserInfo("AsyncProcessingService", "AsyncProcessingService")); asyncParameterValue.UserId = "A"; asyncParameterValue.ProcessName = "AAA"; asyncParameterValue.Data = AsyncSvc_sample.LayerB.SerializeToBase64String(arrayData); asyncParameterValue.ExecutionStartDateTime = DateTime.Now; asyncParameterValue.RegistrationDateTime = DateTime.Now; asyncParameterValue.NumberOfRetries = 0; asyncParameterValue.ProgressRate = 0; asyncParameterValue.CompletionDateTime = DateTime.Now; asyncParameterValue.StatusId = (int)(AsyncProcessingServiceParameterValue.AsyncStatus.Register); asyncParameterValue.CommandId = 0; asyncParameterValue.ReservedArea = "xxxxxx"; DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; AsyncProcessingServiceReturnValue asyncReturnValue; // Execute do business logic method. LayerB layerB = new LayerB(); asyncReturnValue = (AsyncProcessingServiceReturnValue)layerB.DoBusinessLogic((AsyncProcessingServiceParameterValue)asyncParameterValue, iso); return(asyncParameterValue); }
/// <summary> /// To Delete database records /// </summary> /// <param name="shardMap"></param> /// <param name="credentialsConnectionString"></param> public static void ExecuteDataDependentRoutingQueryForDelete(RangeShardMap <int> shardMap) { TestParameterValue testParameterValue = new TestParameterValue( "DataDependentRouting", "ExecuteDataDependentRouting", "Delete", "SqlDbWithDataDependent" + "%" + "individual" + "%" + "-", new MyUserInfo("DataDependentRouting", "DataDependentRouting")); // 情報の設定 testParameterValue.CustomerId = MultiShardConfiguration.customerId; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 TestReturnValue testReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic( (BaseParameterValue)testParameterValue, iso); Console.WriteLine("Deleted order for customer ID: {0}", testParameterValue.CustomerId); }
public void _1_SelectCount( string screenId, string controlId, string actionType, string userName, string ipAddress, string isolationLevel) { string methodName = "SelectCount"; // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( screenId, controlId, methodName, actionType, new MyUserInfo(userName, ipAddress)); // 戻り値 TestReturnValue testReturnValue = null; // B層呼出し LayerB layerB = new LayerB(); try { testReturnValue = (TestReturnValue)layerB.DoBusinessLogic( testParameterValue, this.SelectIsolationLevel(isolationLevel)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } // 戻り値検証。 Assert.AreEqual(testReturnValue.ErrorFlag, false); Assert.AreEqual(StringChecker.IsNumbers(testReturnValue.Obj.ToString()), true); }
/// <summary> /// Stop the asynchronous service and Waits to complete all worker thread to complete. /// </summary> public void StopAsyncProcess() { // Breaks the infinite loop of Main thread. this._infiniteLoop = false; // Wait the end of the main thread. this._mainThread.Join(); // Update stop command to all the running asynchronous task AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue("AsyncProcessingService", "StopAllTask", "StopAllTask", "SQL", new MyUserInfo("AsyncProcessingService", "AsyncProcessingService")); asyncParameterValue.StatusId = (int)AsyncProcessingServiceParameterValue.AsyncStatus.Processing; asyncParameterValue.CommandId = (int)AsyncProcessingServiceParameterValue.AsyncCommand.Stop; LayerB layerB = new LayerB(); AsyncProcessingServiceReturnValue asyncReturnValue = (AsyncProcessingServiceReturnValue)layerB.DoBusinessLogic( (BaseParameterValue)asyncParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); if (asyncReturnValue.ErrorFlag) { LogIF.ErrorLog("ASYNC-SERVICE", "ErrorMessageID: " + asyncReturnValue.ErrorMessageID + "ErrorMessage: " + asyncReturnValue.ErrorMessage); } // Wait for all worker thread to be complete LogIF.InfoLog("ASYNC-SERVICE", GetMessage.GetMessageDescription("I0004")); while (this._workerThreadCount != 0) { // Wait for the completion of the worker thread. Thread.Sleep(this._numberOfSeconds * 1000); } // Log after completing all worker threads LogIF.InfoLog("ASYNC-SERVICE", GetMessage.GetMessageDescription("I0008")); }
// POST api/Select public HttpResponseMessage Post(WebApiParams param) { // B層呼出し+都度コミット LayerB layerB = new LayerB(); layerB.SelectByCondition(param); // 結果(正常系) List <Shipper> shipperData = new List <Shipper>(); shipperData = (List <Shipper>)param.Obj; if (shipperData.Count == 0) { // 結果表示するメッセージ string message = ""; Dictionary <string, string> dic = new Dictionary <string, string>(); // 結果(正常系) message = "No records found"; dic.Add("NoRecords", message); return(Request.CreateResponse(HttpStatusCode.OK, dic)); } else { return(Request.CreateResponse(HttpStatusCode.OK, shipperData)); } }
// POST api/SelectDSQL public HttpResponseMessage Post(WebApiParams param) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button1", "SelectAll_DSQL", param.ddlDap + "%" + param.ddlMode1 + "%" + param.ddlMode2 + "%" + param.ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); testParameterValue.OrderColumn = param.OrderColumn; testParameterValue.OrderSequence = param.OrderSequence; // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("Error", message); return(Request.CreateResponse(HttpStatusCode.OK, dic)); } else { // 結果(正常系) DataTable dt = (DataTable)testReturnValue.Obj; List <Dictionary <string, string> > list = new List <Dictionary <string, string> >(); foreach (DataRow row in dt.Rows) { Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add(dt.Columns[0].ColumnName, row[0].ToString()); dic.Add(dt.Columns[1].ColumnName, row[1].ToString()); dic.Add(dt.Columns[2].ColumnName, row[2].ToString()); list.Add(dic); } return(Request.CreateResponse(HttpStatusCode.OK, list)); } }
/// <summary> /// Shippers テーブルのレコード全件を DataReader として取得する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <param name="form">入力フォームの情報</param> /// <returns>再描画(ViewResult)</returns> public ActionResult SelectAll_DR(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback, FormCollection form) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button4", "SelectAll_DR", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; CrudModel model = new CrudModel(); // 値の復元のため、CopyInputValuesを呼び出す。 model.CopyInputValues(form); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // メッセージを設定。 model.Message = message; } else { // 結果(正常系) model.shippers = new DataSets.DsNorthwind.ShippersDataTable(); DataTable dt = (DataTable)testReturnValue.Obj; foreach (DataRow row in dt.Rows) { DataSets.DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow(); srow.ShipperID = int.Parse(row[0].ToString()); srow.CompanyName = row[1].ToString(); srow.Phone = row[2].ToString(); model.shippers.Rows.Add(srow); } } // Html.BeginFormでは、全体更新。 return(View("Index", model)); }
/// <summary> /// Shippers テーブルのレコード全件を DataReader として取得する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <returns>Shippers テーブルのレコードを表示するPartialViewResult</returns> public ActionResult SelectAll_DR(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button4", "SelectAll_DR", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // Ajax.BeginFormでは、UpdateTargetIdで指定した // ターゲット以外を更新する場合、JavaScriptでの対応が必要。 // #ここではjQueryを使用している。 string scriptText = "$('#lblMessage').text('" + message + "');"; return(JavaScript(scriptText)); } else { // 結果(正常系) CrudModel model = new CrudModel(); model.shippers = new DataSets.DsNorthwind.ShippersDataTable(); DataTable dt = (DataTable)testReturnValue.Obj; foreach (DataRow row in dt.Rows) { DataSets.DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow(); srow.ShipperID = int.Parse(row[0].ToString()); srow.CompanyName = row[1].ToString(); srow.Phone = row[2].ToString(); model.shippers.Rows.Add(srow); } // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return(PartialView("_ChartView", model)); } }
/// <summary> /// ShipperId をキーにして Shippers テーブルのレコードを取得する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <param name="textBox1">ShipperId</param> /// <returns>Shippers テーブルのレコードを表示するJavaScriptResult</returns> public ActionResult Select(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback, string textBox1) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button6", "Select", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 動的SQLの要素を設定 testParameterValue.ShipperID = int.Parse(textBox1); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; CrudModel model = new CrudModel() { Message = message }; // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return(PartialView("_MessageView", model)); } else { // 結果(正常系) // Ajax.BeginFormでは、UpdateTargetIdで指定した // ターゲット以外を更新する場合、JavaScriptでの対応が必要。 // #ここではjQueryを使用している。 string scriptText = string.Format("$('#textBox1').val('{0}');$('#textBox2').val('{1}');$('#textBox3').val('{2}');", testReturnValue.ShipperID, testReturnValue.CompanyName, testReturnValue.Phone); return(JavaScript(scriptText)); } }
/// <summary>Main</summary> static void Main(string[] args) { //////////////////////////////////////////////////////////////////////// // 簡素なサンプルなので、 // ・多重化(タスク毎、結果セットを分割) // ・フェッチ・サイズ(メモリ消費量を抑える) // ・コミット・インターバル、リラン // 等の考慮が別途必要になることがあります。 //////////////////////////////////////////////////////////////////////// // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); // コマンドラインをバラす関数がある。 List <string> valsLst = null; Dictionary <string, string> argsDic = null; PubCmnFunction.GetCommandArgs('/', out argsDic, out valsLst); // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( System.Reflection.Assembly.GetExecutingAssembly().Location, "-", "SelectCount", argsDic["/DAP"] + "%" + argsDic["/MODE1"] + "%" + argsDic["/MODE2"] + "%" + argsDic["/EXROLLBACK"], new MyUserInfo("", "")); // 戻り値 TestReturnValue testReturnValue; // B層呼出し LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) string error = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; error += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; error += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; Console.WriteLine(error); Console.ReadKey(); } else { // 結果(正常系) Console.WriteLine(testReturnValue.Obj.ToString() + "件のデータがあります"); Console.ReadKey(); } }
/// <summary> /// To create database records /// </summary> /// <param name="shardMap"></param> /// <param name="credentialsConnectionString"></param> public static void ExecuteDataDependentRoutingQuery(RangeShardMap <int> shardMap) { // we just choose a random key out of the range that is mapped. Here we assume that the ranges // start at 0, are contiguous, and are bounded (i.e. there is no range where HighIsMax == true) int currentMaxHighKey = shardMap.GetMappings().Max(m => m.Value.High); MultiShardConfiguration.customerId = GetCustomerId(currentMaxHighKey); string customerName = shardCustomerNames[randCustomer.Next(shardCustomerNames.Length)]; int regionId = 0; int productId = 0; TestParameterValue testParameterValue = new TestParameterValue( "DataDependentRouting", "ExecuteDataDependentRouting", "Insert", "SqlDbWithDataDependent" + "%" + "individual" + "%" + "-", new MyUserInfo("DataDependentRouting", "DataDependentRouting")); // 情報の設定 testParameterValue.CustomerId = MultiShardConfiguration.customerId; testParameterValue.Name = customerName; testParameterValue.RegionId = regionId; testParameterValue.ProductId = productId; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 TestReturnValue testReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic( (BaseParameterValue)testParameterValue, iso); string strErrorMsg = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) strErrorMsg = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; strErrorMsg += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; strErrorMsg += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; Console.WriteLine("Inserted failed for customer ID: {0},{1}", testParameterValue.CustomerId, strErrorMsg); } else { // 結果(正常系) Console.WriteLine("Inserted order for customer ID: {0}", testParameterValue.CustomerId); } }
public async Task <ActionResult> SelectAll_DSQL(CrudViweModel model) { if (ModelState.IsValid) { // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue(this.ControllerName, "-", this.ActionName, model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo); // 動的SQLの要素を設定 testParameterValue.OrderColumn = model.DdlOrderColumn; testParameterValue.OrderSequence = model.DdlOrderSequence; // B層呼出し+都度コミット LayerB layerB = new LayerB(); TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso)); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // Ajax.BeginFormでは、UpdateTargetIdで指定した // ターゲット以外を更新する場合、JavaScriptでの対応が必要。 // #ここではjQueryを使用している。 string scriptText = "$('#lblMessage').text('" + message + "');"; return(JavaScript(scriptText)); } else { // 結果(正常系) model.shippers = new DsNorthwind.ShippersDataTable(); DataTable dt = (DataTable)testReturnValue.Obj; foreach (DataRow row in dt.Rows) { DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow(); srow.ShipperID = int.Parse(row[0].ToString()); srow.CompanyName = row[1].ToString(); srow.Phone = row[2].ToString(); model.shippers.Rows.Add(srow); } } } // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return(PartialView("_ChartView", model)); }
/// <summary> /// ShipperId をキーにして Shippers テーブルのレコードを取得する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <param name="textBox1">ShipperId</param> /// <param name="form">入力フォームの情報</param> /// <returns>再描画(ViewResult)</returns> public ActionResult Select(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback, string textBox1, FormCollection form) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button6", "Select", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 動的SQLの要素を設定 testParameterValue.ShipperID = int.Parse(textBox1); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; CrudModel model = new CrudModel(); // 値の復元のため、CopyInputValuesを呼び出す。 model.CopyInputValues(form); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // メッセージを設定。 model.Message = message; } else { // 結果(正常系) // 入力フォームの復元値を更新する場合は、model.InputValuesを更新する。 model.InputValues["textBox1"] = testReturnValue.ShipperID.ToString(); model.InputValues["textBox2"] = testReturnValue.CompanyName; model.InputValues["textBox3"] = testReturnValue.Phone; } // Html.BeginFormでは、全体更新。 return(View("Index", model)); }
// POST api/SelectListEF public HttpResponseMessage Post(WebApiParams param) { // B層呼出し+都度コミット LayerB layerB = new LayerB(); layerB.SelectAll_List(param); // 結果(正常系) List <Shipper> shipperData = new List <Shipper>(); shipperData = (List <Shipper>)param.Obj; return(Request.CreateResponse(HttpStatusCode.OK, shipperData)); }
public async Task <ActionResult> SelectAll_DSQL(CrudViweModel model) { if (ModelState.IsValid) { // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue(this.ControllerName, "-", this.ActionName, model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo); // 動的SQLの要素を設定 testParameterValue.OrderColumn = model.DdlOrderColumn; testParameterValue.OrderSequence = model.DdlOrderSequence; // B層呼出し+都度コミット LayerB layerB = new LayerB(); TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync(testParameterValue, this.SelectIsolationLevel(model.DdlIso)); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // メッセージを設定。 model.Message = message; } else { // 結果(正常系) model.shippers = new DsNorthwind.ShippersDataTable(); DataTable dt = (DataTable)testReturnValue.Obj; foreach (DataRow row in dt.Rows) { DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow(); srow.ShipperID = int.Parse(row[0].ToString()); srow.CompanyName = row[1].ToString(); srow.Phone = row[2].ToString(); model.shippers.Rows.Add(srow); } } } // 再表示(Html.BeginFormでは、全体更新。 return(View("Index", model)); }
public async Task <ActionResult> Select(CrudViweModel model) { string scriptText = ""; if (ModelState.IsValid) { // 引数クラスを生成。下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue(this.ControllerName, "-", this.ActionName, model.DdlDap + "%" + model.DdlMode1 + "%" + model.DdlMode2 + "%" + model.DdlExRollback, this.UserInfo); // 動的SQLの要素を設定 testParameterValue.Shipper = model.Shipper; // B層呼出し+都度コミット LayerB layerB = new LayerB(); TestReturnValue testReturnValue = (TestReturnValue)await layerB.DoBusinessLogicAsync( testParameterValue, this.SelectIsolationLevel(model.DdlIso)); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // メッセージを設定。 model.Message = message; // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return(PartialView("_MessageView", model)); } else { // 結果(正常系) } // Ajax.BeginFormでは、UpdateTargetIdで指定した // ターゲット以外を更新する場合、JavaScriptでの対応が必要。 // #ここではjQueryを使用している。 ShipperViweModel svm = (ShipperViweModel)testReturnValue.Obj; scriptText = string.Format( "$('#Shipper_ShipperID').val('{0}');$('#Shipper_CompanyName').val('{1}');$('#Shipper_Phone').val('{2}');", svm.ShipperID, svm.CompanyName, svm.Phone); } return(JavaScript(scriptText)); }
/// <summary> /// btnMButton8のClickイベント(更新処理) /// </summary> /// <param name="fxEventArgs">Event Handlerの共通引数</param> /// <returns>URL</returns> protected string UOC_sampleScreen_btnMButton8_Click(FxEventArgs fxEventArgs) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( this.ContentPageFileNoEx, fxEventArgs.ButtonID, "Update", this.ddlDap.SelectedValue + "%" + this.ddlMode1.SelectedValue + "%" + this.ddlMode2.SelectedValue + "%" + this.ddlExRollback.SelectedValue, this.UserInfo); // 情報の設定 testParameterValue.ShipperID = int.Parse(this.TextBox1.Text); testParameterValue.CompanyName = this.TextBox2.Text; testParameterValue.Phone = this.TextBox3.Text; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel(); // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 TestReturnValue testReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic( (BaseParameterValue)testParameterValue, iso); // 結果表示するMessage エリア Label label = (Label)this.GetMasterWebControl("Label1"); label.Text = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) label.Text = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; label.Text += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; label.Text += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; } else { // 結果(正常系) label.Text = testReturnValue.Obj.ToString() + "件更新"; } // 画面遷移しないPost Backの場合は、urlを空文字列に設定する return(""); }
/// <summary> /// btnMButton5のClickイベント(一覧取得(動的sql)) /// </summary> /// <param name="fxEventArgs">Event Handlerの共通引数</param> /// <returns>URL</returns> protected string UOC_sampleScreen_btnMButton5_Click(FxEventArgs fxEventArgs) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( this.ContentPageFileNoEx, fxEventArgs.ButtonID, "SelectAll_DSQL", this.ddlDap.SelectedValue + "%" + this.ddlMode1.SelectedValue + "%" + this.ddlMode2.SelectedValue + "%" + this.ddlExRollback.SelectedValue, this.UserInfo); // 動的SQLの要素を設定 testParameterValue.OrderColumn = this.ddlOrderColumn.SelectedValue; testParameterValue.OrderSequence = this.ddlOrderSequence.SelectedValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel(); // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 TestReturnValue testReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic( (BaseParameterValue)testParameterValue, iso); // 結果表示するMessage エリア Label label = (Label)this.GetMasterWebControl("Label1"); label.Text = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) label.Text = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; label.Text += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; label.Text += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; } else { // 結果(正常系) this.GridView1.DataSource = testReturnValue.Obj; this.GridView1.DataBind(); } // 画面遷移しないPost Backの場合は、urlを空文字列に設定する return(""); }
/// <summary> /// Shippers テーブルに新規レコードを更新する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <param name="textBox1">ShipperId</param> /// <param name="textBox2">CompanyName</param> /// <param name="textBox3">Phone</param> /// <returns>Shippers テーブルのレコードを表示するPartialViewResult</returns> public ActionResult Update(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback, string textBox1, string textBox2, string textBox3) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button8", "Update", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 動的SQLの要素を設定 testParameterValue.ShipperID = int.Parse(textBox1); testParameterValue.CompanyName = textBox2; testParameterValue.Phone = textBox3; // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; } else { // 結果(正常系) message = testReturnValue.Obj.ToString() + "件更新"; } CrudModel model = new CrudModel() { Message = message }; // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return(PartialView("_MessageView", model)); }
// POST api/Update public HttpResponseMessage Post(WebApiParams param) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button1", "Update", param.ddlDap + "%" + param.ddlMode1 + "%" + param.ddlMode2 + "%" + param.ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); testParameterValue.ShipperID = param.ShipperId; testParameterValue.CompanyName = param.CompanyName; testParameterValue.Phone = param.Phone; // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; Dictionary <string, string> dic = new Dictionary <string, string>(); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; dic.Add("Error", message); } else { // 結果(正常系) message = testReturnValue.Obj.ToString() + "件更新"; dic.Add("Message", message); } return(Request.CreateResponse(HttpStatusCode.OK, dic)); }
public string ProcessVideo(string videoFilename, bool search = true, bool onDemand = true, bool keepFrames = false) { string statusMsg = ""; LayerB layerB = new LayerB(videoFilename, search, searchServerAddress); //TODO: ensure that search server address is not null try { statusMsg = layerB.Process(onDemand, keepFrames); } catch (Exception err) { statusMsg = err.Message; } return(statusMsg); }
/// <summary> /// Updates the selected asynchronous task based type of SQL_Update_Method_name /// </summary> /// <param name="selectedAsyncTask">Selected Asynchronous Task</param> /// <param name="updateTask">SQL_Update_Method_name</param> /// <returns></returns> public AsyncProcessingServiceReturnValue UpdateAsyncTask(AsyncProcessingServiceReturnValue selectedAsyncTask, string updateTask, string exceptionInfo = null) { AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue("AsyncProcessingService", updateTask, updateTask, "SQL", new MyUserInfo("AsyncProcessingService", "AsyncProcessingService")); asyncParameterValue.TaskId = selectedAsyncTask.TaskId; // Update databse based on task switch (updateTask) { case AsyncTaskUpdate.START: asyncParameterValue.ExecutionStartDateTime = DateTime.Now; asyncParameterValue.StatusId = (int)AsyncProcessingServiceParameterValue.AsyncStatus.Processing; break; case AsyncTaskUpdate.RETRY: if (exceptionInfo.Length > 512) { exceptionInfo = exceptionInfo.Substring(0, 512); } asyncParameterValue.NumberOfRetries = selectedAsyncTask.NumberOfRetries; asyncParameterValue.CompletionDateTime = DateTime.Now; asyncParameterValue.StatusId = (int)AsyncProcessingServiceParameterValue.AsyncStatus.AbnormalEnd; asyncParameterValue.ExceptionInfo = exceptionInfo; break; case AsyncTaskUpdate.FAIL: if (exceptionInfo.Length > 512) { exceptionInfo = exceptionInfo.Substring(0, 512); } asyncParameterValue.CompletionDateTime = DateTime.Now; asyncParameterValue.StatusId = (int)AsyncProcessingServiceParameterValue.AsyncStatus.Abort; asyncParameterValue.ExceptionInfo = exceptionInfo; break; case AsyncTaskUpdate.SUCCESS: asyncParameterValue.CompletionDateTime = DateTime.Now; asyncParameterValue.ProgressRate = 100; asyncParameterValue.StatusId = (int)AsyncProcessingServiceParameterValue.AsyncStatus.End; break; } LayerB layerB = new LayerB(); AsyncProcessingServiceReturnValue asyncReturnValue = (AsyncProcessingServiceReturnValue)layerB.DoBusinessLogic( (BaseParameterValue)asyncParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); return(asyncReturnValue); }
/// <summary> /// Shippers テーブルのレコード数をカウントする /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <param name="form">入力フォームの情報</param> /// <returns>再描画(ViewResult)</returns> public ActionResult GetCount(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback, FormCollection form) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button1", "SelectCount", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; CrudModel model = new CrudModel(); // 値の復元のため、CopyInputValuesを呼び出す。 model.CopyInputValues(form); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; } else { // 結果(正常系) message = testReturnValue.Obj.ToString() + "件のデータがあります"; } // メッセージを設定。 model.Message = message; // Html.BeginFormでは、全体更新。 return(View("Index", model)); }
/// <summary>参照処理</summary> private void button6_Click(object sender, RoutedEventArgs e) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( this.Name, ((Button)sender).Name, "Select", ((ComboBoxItem)this.ddlDap.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlMode1.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlMode2.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlExRollback.SelectedItem).Value, this.myUserInfo); // 情報の設定 testParameterValue.ShipperID = int.Parse(this.textBox1.Text); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel(); // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); LayerB.CommitAndClose(); // 結果表示するメッセージ エリア this.labelMessage.Content = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) labelMessage.Content = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; labelMessage.Content += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; labelMessage.Content += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; } else { // 結果(正常系) this.textBox1.Text = testReturnValue.ShipperID.ToString(); this.textBox2.Text = testReturnValue.CompanyName; this.textBox3.Text = testReturnValue.Phone; } }
/// <summary>一覧取得(動的sql)</summary> private void button5_Click(object sender, RoutedEventArgs e) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( this.Name, ((Button)sender).Name, "SelectAll_DSQL", ((ComboBoxItem)this.ddlDap.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlMode1.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlMode2.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlExRollback.SelectedItem).Value, this.myUserInfo); // 動的SQLの要素を設定 testParameterValue.OrderColumn = ((ComboBoxItem)this.ddlOrderColumn.SelectedItem).Value; testParameterValue.OrderSequence = ((ComboBoxItem)this.ddlOrderSequence.SelectedItem).Value; // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel(); // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); LayerB.CommitAndClose(); // 結果表示するメッセージ エリア this.labelMessage.Content = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) labelMessage.Content = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; labelMessage.Content += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; labelMessage.Content += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; } else { // 結果(正常系) this.dataGridControl1.Columns.Clear(); this.dataGridControl1.DataContext = testReturnValue.Obj; } }
// POST api/GetCount public HttpResponseMessage Post(WebApiParams param) { // 結果表示するメッセージ string message = ""; Dictionary <string, string> dic = new Dictionary <string, string>(); // B層呼出し+都度コミット LayerB layerB = new LayerB(); layerB.SelectCount(param); // 結果(正常系) message = param.Obj.ToString() + "件のデータがあります"; dic.Add("Message", message); return(Request.CreateResponse(HttpStatusCode.OK, dic)); }
/// <summary>更新処理</summary> /// <param name="rcFxEventArgs">イベントハンドラの共通引数</param> protected void UOC_btnButton8_Click(RcFxEventArgs rcFxEventArgs) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( this.Name, rcFxEventArgs.ControlName, "Update", ((ComboBoxItem)this.ddlDap.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlMode1.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlMode2.SelectedItem).Value + "%" + ((ComboBoxItem)this.ddlExRollback.SelectedItem).Value, MyBaseControllerWin.UserInfo); // 情報の設定 testParameterValue.ShipperID = int.Parse(this.textBox1.Text); testParameterValue.CompanyName = this.textBox2.Text; testParameterValue.Phone = this.textBox3.Text; // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel(); // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); LayerB.CommitAndClose(); // 結果表示するメッセージ エリア this.labelMessage.Text = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) labelMessage.Text = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; labelMessage.Text += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; labelMessage.Text += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; } else { // 結果(正常系) labelMessage.Text = testReturnValue.Obj.ToString() + "件更新"; } }
/// <summary> /// GetListData() Method to get list of integer of ShipperID in shippers table before running the test cases /// </summary> /// <param name="list">list</param> /// <returns value="getList">List of Integer data type<int></returns> private List<int> GetListData() { List<int> getList = new List<int>(); MyUserInfo userInfo = new MyUserInfo("user1", "Hostname"); LayerB lb = new LayerB(); TestParameterValue test = new TestParameterValue("Select ShipperID from Shippers", "button1", "GetList", "SQL%individual%static%-", userInfo); TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test); DataTable dt = (DataTable)testreturn.Obj; foreach (DataRow dr in dt.Rows) { getList.Add((int)dr[0]); } return getList; }
/// <summary> /// GetParam Method /// </summary> /// <param name="path">path</param> /// <param name="dt">dt</param> /// <param name="dt1">dt1</param> /// <param name="dbGeneration">dbGeneration</param> private void GetParam(string path, out DataTable dt, out DataTable dt1, string dbGeneration) { MyUserInfo userInfo = new MyUserInfo("user1", "Hostname"); LayerB lb = new LayerB(); TestParameterValue test = new TestParameterValue("screen1", "button1", "GetParametersFromPARAMTag", dbGeneration, userInfo); test.Filepath = path; TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test); dt = (DataTable)testreturn.Obj; dt1 = (DataTable)testreturn.Obj; }
/// <summary>CallBusinessLogic Method</summary> /// <param name="screen">screen ID</param> /// <param name="buttonID">Button ID</param> /// <param name="action">Control action name</param> /// <param name="dbGeneration">Db Generation</param> /// <param name="user">User Info</param> /// <param name="ipAddress">Ip address</param> /// <param name="isolationLevel">Isolation level</param> /// <param name="testParameterValue">Test Parameter values</param> /// <returns>resultTestReturnValue</returns> /// <returns>expectedTestReturnValue</returns> private void CallBusinessLogic(string screen, string buttonID, string action, string dbGeneration, string user, string ipAddress, string isolationLevel, TestParameterValue testParameterValue, out TestReturnValue resultTestReturnValue, out TestReturnValue expectedTestReturnValue) { // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = SelectIsolationLevel(isolationLevel); // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 resultTestReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic((BaseParameterValue)testParameterValue, iso); expectedTestReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic((BaseParameterValue)testParameterValue, iso); }
/// <summary> /// btnMButton1のクリックイベント(件数取得) /// </summary> /// <param name="fxEventArgs">イベントハンドラの共通引数</param> /// <returns>URL</returns> protected string UOC_sampleScreen_btnMButton1_Click(FxEventArgs fxEventArgs) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( this.ContentPageFileNoEx, fxEventArgs.ButtonID, "SelectCount", this.ddlDap.SelectedValue + "%" + this.ddlMode1.SelectedValue + "%" + this.ddlMode2.SelectedValue + "%" + this.ddlExRollback.SelectedValue, this.UserInfo); // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel(); // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 TestReturnValue testReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic( (BaseParameterValue)testParameterValue, iso); // 結果表示するメッセージ エリア Label label = (Label)this.GetMasterWebControl("Label1"); label.Text = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) label.Text = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; label.Text += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; label.Text += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; } else { // 結果(正常系) label.Text = testReturnValue.Obj.ToString() + "件のデータがあります"; } // 画面遷移しないポストバックの場合は、urlを空文字列に設定する return ""; }
/// <summary> /// GetIdentityValue() Method to get the Current Identity value of Shipper ID column in Shippers table /// </summary> /// <returns value="intIdentity">intIdentity as integer data type</returns> private int GetIdentityValue() { int intIdentity = 0; MyUserInfo userInfo = new MyUserInfo("user1", "Hostname"); LayerB lb = new LayerB(); TestParameterValue test = new TestParameterValue("SELECT IDENT_CURRENT('shippers')", "button1", "GetID", "SQL%individual%static%-", userInfo); TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test); intIdentity = Convert.ToInt16(testreturn.Obj); return intIdentity; }
/// <summary> /// DeleteData() Method to delete the ShipperID's from shippers table which are inserted while running test cases. /// </summary> private void DeleteData() { MyUserInfo userInfo = new MyUserInfo("user1", "Hostname"); LayerB lb = new LayerB(); string strIDdelete = ToCommaString(testList); TestParameterValue test = new TestParameterValue("Delete from Shippers where ShipperID not in(" + strIDdelete + ")", "button1", "GetDelete", "SQL%individual%static%-", userInfo); TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test); testList.Clear(); }