示例#1
0
        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);
            }
        }
示例#3
0
        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;
            }
        }
示例#4
0
        /// <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);
        }
示例#5
0
        /// <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);
        }
示例#6
0
        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);
        }
示例#7
0
        /// <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));
            }
        }
示例#9
0
        // 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));
            }
        }
示例#10
0
        /// <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));
        }
示例#11
0
        /// <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));
            }
        }
示例#12
0
        /// <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();
            }
        }
示例#14
0
        /// <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);
            }
        }
示例#15
0
        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));
        }
示例#16
0
        /// <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));
        }
示例#18
0
        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("");
        }
示例#22
0
        /// <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));
        }
示例#23
0
        // 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));
        }
示例#24
0
        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);
        }
示例#25
0
        /// <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);
        }
示例#26
0
        /// <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));
        }
示例#27
0
        /// <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;
            }
        }
示例#28
0
        /// <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));
        }
示例#30
0
        /// <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() + "件更新";
            }
        }
示例#31
0
 /// <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;
 }
示例#32
0
        /// <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;

        }
示例#33
0
        /// <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);
        }
示例#34
0
    /// <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 "";
    }
示例#35
0
 /// <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;
 }
示例#36
0
 /// <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();
 }