/// <summary>
        /// 更新表示
        /// </summary>
        /// <param name="dailyParameterEdt">日別予測条件編集情報</param>
        /// <returns></returns>
        public ActionResult Edit([Bind(Include = "SearchDate")] V_DailyParameterEdt dailyParameterEdt)
        {
            Trace.WriteLine("GET /DailyParameter/Edit/" + dailyParameterEdt.SearchDate);

            // ステータスをクリア
            ModelState.Clear();

            // インスタンスを生成
            dailyParameterEdt.DailyClasses = new T_DailyClasses();
            dailyParameterEdt.TrainerList  = new List <T_DailyClassesByTrainer>();

            if (dailyParameterEdt.SearchDate != null)
            {
                // 日別予測条件を取得
                T_DailyClasses dailyClasses = db.DailyClasses.Find(dailyParameterEdt.SearchDate);
                // データが存在しない場合はインスタンスを生成
                if (dailyClasses == null)
                {
                    dailyClasses = new T_DailyClasses()
                    {
                        Date = dailyParameterEdt.SearchDate
                    };
                }
                dailyParameterEdt.DailyClasses = dailyClasses;
                // 更新日付Toを設定
                dailyParameterEdt.UpdateTo = dailyClasses.Date;

                // 指導員コマ数を取得
                dailyParameterEdt.TrainerList = db.DailyClassesByTrainer.Where(x => ((DateTime)x.Date).Equals((DateTime)dailyParameterEdt.SearchDate)).OrderBy(x => x.No).ToList();
            }
            else
            {
                ViewBag.SearchErrorMessage = "検索条件を指定してください。";
            }

            // 指導員コマ管理画面から遷移するための検索日付をTempDataに設定
            TempData[AppConstant.TEMP_KEY_SEARCH_DATE] = dailyParameterEdt.SearchDate;

            return(View(dailyParameterEdt));
        }
        public ActionResult Edit(string cmd, [Bind(Include = "DailyClasses,UpdateTo")] V_DailyParameterEdt dailyParameterEdt)
        {
            Trace.WriteLine("POST /DailyParameter/Edit/" + dailyParameterEdt.DailyClasses.Date + "&" + dailyParameterEdt.UpdateTo);

            // 更新ボタンが押下された場合
            if (AppConstant.CMD_UPDATE.Equals(cmd))
            {
                // 日付を設定
                dailyParameterEdt.SearchDate = dailyParameterEdt.DailyClasses.Date;

                // 入力チェック
                bool validation = true;
                if (ModelState.IsValid)
                {
                    // 更新日付Toの必須チェック
                    if (dailyParameterEdt.UpdateTo == null)
                    {
                        ViewBag.ErrorMessage = "更新範囲の日付を設定してください。";
                        validation           = false;
                    }
                    // 日付の前後チェック
                    if (validation == true &&
                        dailyParameterEdt.UpdateTo < dailyParameterEdt.DailyClasses.Date)
                    {
                        ViewBag.ErrorMessage = "更新範囲の日付の前後関係が不正です。";
                        validation           = false;
                    }

                    // [20210416リリース対応] Add Start 教習外コマ数比率の追加
                    double checkValue;
                    // 教習外コマ数比率のチェック
                    checkValue = dailyParameterEdt.DailyClasses.DepartExamRatio + dailyParameterEdt.DailyClasses.OtherVehicleRatio
                                 + dailyParameterEdt.DailyClasses.SeminarRatio + dailyParameterEdt.DailyClasses.OtherRatio;
                    if (validation == true && checkValue > 100)
                    {
                        ViewBag.ErrorMessage = "教習外コマ数比率(学科・検定比率、他車種比率、講習比率、その他)は合わせて100以下になるように設定してください。";
                        validation           = false;
                    }
                    // [20210416リリース対応] Add End

                    // 合宿比率[%]と通学比率[%]のチェック
                    // [20210416リリース対応] Mod Start 0の許容
                    //if (validation == true &&
                    //    dailyParameterEdt.DailyClasses.LodgingRatio + dailyParameterEdt.DailyClasses.CommutingRatio != 100)
                    checkValue = dailyParameterEdt.DailyClasses.LodgingRatio + dailyParameterEdt.DailyClasses.CommutingRatio;
                    if (validation == true && checkValue != 0 && checkValue != 100)
                    // [20210416リリース対応] Mod End
                    {
                        ViewBag.ErrorMessage = "合宿・通学比率(合宿比率、通学比率)は合わせて100になるように設定してください。";
                        validation           = false;
                    }

                    // 合宿の在籍比率[%](AT一段階/二段階、MT一段階/二段階)のチェック
                    // [20210416リリース対応] Mod Start 0の許容
                    //if (validation == true &&
                    //    dailyParameterEdt.DailyClasses.LdgAtFstRatio + dailyParameterEdt.DailyClasses.LdgAtSndRatio + dailyParameterEdt.DailyClasses.LdgMtFstRatio + dailyParameterEdt.DailyClasses.LdgMtSndRatio != 100)
                    checkValue = dailyParameterEdt.DailyClasses.LdgAtFstRatio + dailyParameterEdt.DailyClasses.LdgAtSndRatio + dailyParameterEdt.DailyClasses.LdgMtFstRatio + dailyParameterEdt.DailyClasses.LdgMtSndRatio;
                    if (validation == true && checkValue != 0 && checkValue != 100)
                    // [20210416リリース対応] Mod End
                    {
                        ViewBag.ErrorMessage = "合宿の在籍比率[%](AT一段階/二段階、MT一段階/二段階)は合わせて100になるように設定してください。";
                        validation           = false;
                    }

                    // 通学の在籍比率[%](AT一段階/二段階、MT一段階/二段階)のチェック
                    // [20210416リリース対応] Mod Start 0の許容
                    //if (validation == true &&
                    //    dailyParameterEdt.DailyClasses.CmtAtFstRatio + dailyParameterEdt.DailyClasses.CmtAtSndRatio + dailyParameterEdt.DailyClasses.CmtMtFstRatio + dailyParameterEdt.DailyClasses.CmtMtSndRatio != 100)
                    checkValue = dailyParameterEdt.DailyClasses.CmtAtFstRatio + dailyParameterEdt.DailyClasses.CmtAtSndRatio + dailyParameterEdt.DailyClasses.CmtMtFstRatio + dailyParameterEdt.DailyClasses.CmtMtSndRatio;
                    if (validation == true && checkValue != 0 && checkValue != 100)
                    // [20210416リリース対応] Mod End
                    {
                        ViewBag.ErrorMessage = "通学の在籍比率[%](AT一段階/二段階、MT一段階/二段階)は合わせて100になるように設定してください。";
                        validation           = false;
                    }
                }
                else
                {
                    // エラーメッセージを生成
                    ViewBag.ErrorMessage = new Utility().GetErrorMessage(ModelState);
                    validation           = false;
                }

                if (validation == true)
                {
                    // 指定した範囲で登録/更新処理を行う
                    for (DateTime date = (DateTime)dailyParameterEdt.DailyClasses.Date;
                         date.CompareTo((DateTime)dailyParameterEdt.UpdateTo) <= 0; date = date.AddDays(1))
                    {
                        // 登録/更新対象を設定
                        T_DailyClasses dailyClasses = new T_DailyClasses()
                        {
                            Date = date
                        };
                        this.SetUpdateInfo(dailyClasses, dailyParameterEdt.DailyClasses);
                        // 存在チェック
                        if (db.DailyClasses.Where(x => ((DateTime)x.Date).Equals(date)).Count() == 0)
                        {
                            // 登録処理
                            db.DailyClasses.Add(dailyClasses);
                        }
                        else
                        {
                            // 更新処理
                            db.Entry(dailyClasses).State = EntityState.Modified;
                        }
                    }
                    db.SaveChanges();

                    // 完了メッセージ
                    ViewBag.CompMessage = "データを更新しました。";
                }

                // 指導員コマ数を取得
                dailyParameterEdt.TrainerList = db.DailyClassesByTrainer.Where(x => ((DateTime)x.Date).Equals((DateTime)dailyParameterEdt.SearchDate)).OrderBy(x => x.No).ToList();
            }

            // その他
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            return(View(dailyParameterEdt));
        }