/// <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)); }
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)); }