Пример #1
0
        /// <summary>
        /// 一覧表示
        /// </summary>
        /// <param name="cmd">コマンド</param>
        /// <param name="entGrdCalendarEdt">入卒カレンダー編集情報</param>
        /// <returns></returns>
        public ActionResult List(string cmd, [Bind(Include = "Year,Month")] V_EntGrdCalendarEdt entGrdCalendarEdt)
        {
            Trace.WriteLine("GET /Calendar/List");

            // カレンダー情報を初期化
            entGrdCalendarEdt.CalendarList = new List <M_EntGrdCalendar>();

            if (!string.IsNullOrEmpty(cmd))
            {
                // 検索ボタンが押下された場合
                if (AppConstant.CMD_SEARCH.Equals(cmd))
                {
                    // 年、月を指定して取得
                    if (!string.IsNullOrEmpty(entGrdCalendarEdt.Year) && !string.IsNullOrEmpty(entGrdCalendarEdt.Month))
                    {
                        // 年と月を指定してカレンダーを取得
                        entGrdCalendarEdt.CalendarList = db.EntGrdCalendar.Where(
                            x => ((DateTime)x.EntrancePlanDate).Year.ToString().Equals(entGrdCalendarEdt.Year) &&
                            ((DateTime)x.EntrancePlanDate).Month.ToString().Equals(entGrdCalendarEdt.Month))
                                                         .OrderBy(x => x.EntrancePlanDate).ThenBy(x => x.TrainingCourseCd).ToList();
                        // 削除フラグをfalseに設定
                        entGrdCalendarEdt.CalendarList.ForEach(x => x.DeleteFlg = false);
                    }
                    else
                    {
                        ViewBag.ErrorMessage = "検索条件を指定してください。";
                    }
                }

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

            return(View(entGrdCalendarEdt));
        }
Пример #2
0
        public ActionResult List(string cmd, int?index, [Bind(Include = "Year,Month,CalendarList")] V_EntGrdCalendarEdt entGrdCalendarEdt)
        {
            Trace.WriteLine("POST /Calendar/List");

            // 更新ボタンが押下された場合
            if (AppConstant.CMD_UPDATE.Equals(cmd))
            {
                if (ModelState.IsValid)
                {
                    foreach (M_EntGrdCalendar calendar in entGrdCalendarEdt.CalendarList)
                    {
                        if (calendar.DeleteFlg == false)
                        {
                            // 更新(ステータスを修正に設定)
                            db.Entry(calendar).State = EntityState.Modified;
                        }
                        else
                        {
                            // 削除対象を取得
                            M_EntGrdCalendar target = db.EntGrdCalendar.Find(calendar.TrainingCourseCd, calendar.EntrancePlanDate);
                            if (target != null)
                            {
                                // 削除処理
                                db.EntGrdCalendar.Remove(target);
                            }
                        }
                    }
                    db.SaveChanges();

                    // 年と月を指定してカレンダーを取得
                    entGrdCalendarEdt.CalendarList = db.EntGrdCalendar.Where(
                        x => ((DateTime)x.EntrancePlanDate).Year.ToString().Equals(entGrdCalendarEdt.Year) &&
                        ((DateTime)x.EntrancePlanDate).Month.ToString().Equals(entGrdCalendarEdt.Month))
                                                     .OrderBy(x => x.EntrancePlanDate).ThenBy(x => x.TrainingCourseCd).ToList();
                    // 削除フラグをfalseに設定
                    entGrdCalendarEdt.CalendarList.ForEach(x => x.DeleteFlg = false);

                    // 完了メッセージ
                    ViewBag.CompMessage = "データを更新しました。";
                }
                else
                {
                    // エラーメッセージを生成
                    ViewBag.ErrorMessage = new Utility().GetErrorMessage(ModelState);
                }
            }

            // 削除ボタンが押下された場合
            else if (AppConstant.CMD_REMOVE.Equals(cmd))
            {
                // ステータスをクリア
                ModelState.Clear();
                // インデックスを元にカレンダーを削除
                int i = (int)index;
                entGrdCalendarEdt.CalendarList[i].DeleteFlg = true;
            }

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

            // 外部キーのマスタを設定
            this.SetForeignMaster(entGrdCalendarEdt.CalendarList);

            return(View(entGrdCalendarEdt));
        }