Exemplo n.º 1
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));
        }
Exemplo n.º 2
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));
        }