public string GetStandings(string divisionName, string seasonName, string leagueName) { var logic = new ScheduleLogic(); var standings = logic.GetStandings(divisionName, seasonName, leagueName); return(Helper.JsonSerializeObject(standings)); }
/// <summary> /// 施設利用状況表示 /// </summary> private void IndicateUsageSituation() { var facilityDisplayInfoList = new List <FacilityDisplayInfo>(); //施設表示情報 dataGridView1.Rows.Clear(); try { //1週間分の施設利用情報を取得 facilityDisplayInfoList = new ScheduleLogic().GetOneWeekFacilityDisplayInfo(this.ShowingFirstDate); } catch (NpgsqlException) { MessageBox.Show("施設情報の取得に失敗しました。", "お知らせ"); } //ヘッダーに日付と曜日を表示 for (int i = 0; i < 7; i++) { dataGridView1.Columns[i + 1].HeaderText = this.ShowingFirstDate.AddDays(i).ToString("M/d") + "(" + this.ShowingFirstDate.AddDays(i).ToString("ddd") + ")"; } for (int i = 0; i < facilityDisplayInfoList.Count; i++) { //表に行を追加し、施設名を表示 dataGridView1.Rows.Add(facilityDisplayInfoList[i].FacilityName); //その施設が利用される時間を表示 foreach (var facilityUsageInfo in facilityDisplayInfoList[i].FacilityUsageInfoList) { //表示する最初の日付と、予定の日付が何日離れているかを算出することで、 //表の何列目にその利用時間を表示するかを算出し、その列に利用時間を表示 //(最も左の列は施設名が表示されている) TimeSpan span = facilityUsageInfo.StartTime.Date - this.ShowingFirstDate.Date; dataGridView1.Rows[i].Cells[span.Days + 1].Value = facilityUsageInfo.StartTime.ToString("t") + "~" + facilityUsageInfo.EndTime.ToString("t"); } } //何年の情報かを表示 label14.Text = "(" + this.ShowingFirstDate.Year.ToString() + "年)"; //表示している最初の日付が今日の場合、先週ボタンを非活性にする if (this.ShowingFirstDate.Date == DateTime.Now.Date) { button5.Enabled = false; } else { button5.Enabled = true; } }
/// <summary> /// 画面共通項目設定 /// </summary> private void SetCommonItem() { var scheduleTypeList = new List <string>(); //予定一覧 const int selectableYearRange = 3; //選択可能な年数の範囲 //定時(勤務開始) const string HourOfRegularStartTime = "9"; const string MinuteOfRegularStartTime = "00"; //定時(勤務終了) const string HourOfRegularEndTime = "17"; const string MinuteOfRegularEndTime = "45"; var scheduleLogic = new ScheduleLogic(); try { scheduleTypeList = scheduleLogic.GetScheduleType(); //予定一覧を取得 this.FacilityInfoList = scheduleLogic.GetFacilityInfo(); //施設情報リストを取得 } catch { MessageBox.Show("予定情報の取得に失敗しました。", "お知らせ"); return; } this.ShowingFirstDate = DateTime.Now; //表示する最初の日付を今日の日付に設定 IndicateUsageSituation(); //施設利用状況表示 textBox1.Enabled = false; //新規予定内容追加のテキストボックスを非活性に //コンボボックスの選択肢に予定名の一覧を追加 foreach (var scheduleType in scheduleTypeList) { comboBox1.Items.Add(scheduleType); } //コンボボックスの選択肢に施設名の一覧を追加 foreach (var facilityInfo in this.FacilityInfoList) { comboBox2.Items.Add(facilityInfo.FacilityName); } //年のコンボボックスの選択肢を追加 for (int i = 0; i < selectableYearRange; i++) { comboBox3.Items.Add((DateTime.Now.Year + i).ToString()); } //年月日のコンボボックスの初期値を、現在の年月日に設定 comboBox3.Text = DateTime.Now.Year.ToString(); //時、分のコンボボックスの初期値を、定時に設定 comboBox4.Text = HourOfRegularStartTime; comboBox5.Text = MinuteOfRegularStartTime; comboBox6.Text = HourOfRegularEndTime; comboBox7.Text = MinuteOfRegularEndTime; }
/// <summary> /// 入力された時間が正しいかをチェック /// </summary> /// <param name="scheduleUpdateType">更新種別</param> /// <returns>チェックの結果</returns> private bool CheckInput(ScheduleUpdateType scheduleUpdateType) { var selectedStartTime = new DateTime(); //入力された予定開始時間 var selectedEndTime = new DateTime(); //入力された予定終了時間 //ログインユーザーの登録済みの予定一覧を取得 var registeredScheduleList = new ScheduleLogic().GetRegisteredSchedule(this.UserInfo.UserID); //新規で追加するにチェックがあり、新規の予定のテキストボックスが空白の場合 if (checkBox1.Checked && textBox1.Text == "") { MessageBox.Show("追加する予定内容を入力してください。", "お知らせ"); return(false); } //新規で追加するにチェックがなく、予定内容が選択されていない場合 if (checkBox1.Checked == false && comboBox1.SelectedItem == null) { MessageBox.Show("予定内容を選択してください。", "お知らせ"); return(false); } //利用する施設が選択されていない場合 if (comboBox2.SelectedItem == null) { MessageBox.Show("利用する施設を選択してください。", "お知らせ"); return(false); } //コンボボックスで選択された開始時間の時、分をまとめる var selectedStartTimeOfDay = new TimeSpan(int.Parse((string)comboBox4.SelectedItem), int.Parse((string)comboBox5.SelectedItem), 0); //コンボボックスで選択された終了時間の時、分をまとめる var selectedEndTimeOfDay = new TimeSpan(int.Parse((string)comboBox6.SelectedItem), int.Parse((string)comboBox7.SelectedItem), 0); //選択された開始時間が終了時間より後になっていた場合 if (selectedStartTimeOfDay > selectedEndTimeOfDay) { MessageBox.Show("選択された開始時間が終了時間より後になっています。", "お知らせ"); return(false); } //コンボボックスで選択された利用開始時間が、施設の開放開始時間より前の場合 if (this.FacilityInfoList[comboBox2.SelectedIndex].OpeningStartTime.TimeOfDay > selectedStartTimeOfDay) { MessageBox.Show("選択された時間が施設の開放時間外です。", "お知らせ"); return(false); } //コンボボックスで選択された利用終了時間が、施設の開放終了時間より後の場合 if (this.FacilityInfoList[comboBox2.SelectedIndex].OpeningEndTime.TimeOfDay < selectedEndTimeOfDay) { MessageBox.Show("選択された時間が施設の開放時間外です。", "お知らせ"); return(false); } //入力された時間の書式が正しいかをチェックし、1つの変数にまとめる try { selectedStartTime = new DateTime( int.Parse((string)comboBox3.SelectedItem), int.Parse(textBox2.Text), int.Parse(textBox3.Text), int.Parse((string)comboBox4.SelectedItem), int.Parse((string)comboBox5.SelectedItem), 0); selectedEndTime = new DateTime( int.Parse((string)comboBox3.SelectedItem), int.Parse(textBox2.Text), int.Parse(textBox3.Text), int.Parse((string)comboBox6.SelectedItem), int.Parse((string)comboBox7.SelectedItem), 0); } catch (FormatException) { MessageBox.Show("正しい日付を入力してください。", "お知らせ"); return(false); } catch (ArgumentOutOfRangeException) { MessageBox.Show("正しい日付を入力してください。", "お知らせ"); return(false); } if (selectedStartTime.Date < DateTime.Now.Date) { MessageBox.Show("本日以降の日付を入力してください。", "お知らせ"); return(false); } //更新種別が編集の場合、編集対象の予定IDと同じ予定IDの要素を、登録済み予定一覧から削除する if (scheduleUpdateType == ScheduleUpdateType.Edit) { registeredScheduleList.RemoveAll(x => x.ScheduleID == this.ScheduleID); } //登録済み予定の時間と選択した時間が重なる場合 if (registeredScheduleList.Any(x => x.StartTime >= selectedStartTime && x.StartTime < selectedEndTime)) { MessageBox.Show("選択された時間には既に予定が登録されています。", "お知らせ"); return(false); } if (registeredScheduleList.Any(x => x.StartTime <= selectedStartTime && x.EndTime > selectedStartTime)) { MessageBox.Show("選択された時間には既に予定が登録されています。", "お知らせ"); return(false); } return(true); }
/// <summary> /// 1週間分の予定を表示 /// </summary> private void IndicateSchedule() { //表示するための予定情報リスト var scheduleDisplayInfoList = new List <ScheduleDisplayInfo>(); //表を初期化 dataGridView1.Rows.Clear(); //年を表示 label2.Text = "予定" + "(" + this.ShowingFirstDate.Year.ToString() + "年)"; //1週間分の予定を取得 try { scheduleDisplayInfoList = new ScheduleLogic().GetOneWeekSchedule(this.ShowingFirstDate); } catch (NpgsqlException) { MessageBox.Show("予定情報の取得に失敗しました。", "お知らせ"); return; } //表のヘッダに日付と曜日を表示 for (int i = 0; i < 7; i++) { dataGridView1.Columns[i + 1].HeaderText = ShowingFirstDate.AddDays(i).ToString("M/d") + "(" + ShowingFirstDate.AddDays(i).ToString("ddd") + ")"; } //表にユーザー名と予定を表示 for (int i = 0; i < scheduleDisplayInfoList.Count; i++) { //行を追加し、ユーザー名を表示 dataGridView1.Rows.Add(scheduleDisplayInfoList[i].UserName); //予定内容と時間を表示 foreach (var scheduleInfo in scheduleDisplayInfoList[i].ScheduleInfoList) { //表示する最初の日付と、予定の日付が何日離れているかを算出することで、 //表の何列目にその予定を表示するかを算出し、その列に予定を表示 //(最も左の列はユーザー名が表示されている) TimeSpan span = scheduleInfo.StartTime.Date - ShowingFirstDate.Date; dataGridView1.Rows[i].Cells[span.Days + 1].Value = scheduleInfo.ScheduleContents + "(" + scheduleInfo.StartTime.ToString("t") + "~" + scheduleInfo.EndTime.ToString("t") + ")"; //ログインユーザーの行の予定が入っているセルのタグに、その予定のIDを設定 dataGridView1.Rows[i].Cells[span.Days + 1].Tag = scheduleInfo.ScheduleID; } //ログインユーザーの予定の行をボタンにする if (scheduleDisplayInfoList[i].UserID == UserInfo.UserID) { for (int j = 0; j < 8; j++) { dataGridView1.Rows[i].Cells[j] = new DataGridViewButtonCell() { Value = dataGridView1.Rows[i].Cells[j].Value, Tag = dataGridView1.Rows[i].Cells[j].Tag }; } } } //表示されている最初の日付が今日の場合、先週ボタンを非活性に if (this.ShowingFirstDate.Date == DateTime.Now.Date) { button1.Enabled = false; } else { button1.Enabled = true; } }
public ScheduleLogicTests() { scheduleLogic = new ScheduleLogic(DBContextFactory.GetMockedDbContext()); }