コード例 #1
0
        public string GetStandings(string divisionName, string seasonName, string leagueName)
        {
            var logic     = new ScheduleLogic();
            var standings = logic.GetStandings(divisionName, seasonName, leagueName);

            return(Helper.JsonSerializeObject(standings));
        }
コード例 #2
0
ファイル: ScheduleAddForm.cs プロジェクト: Ytaro273/Portal
        /// <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;
            }
        }
コード例 #3
0
ファイル: ScheduleAddForm.cs プロジェクト: Ytaro273/Portal
        /// <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;
        }
コード例 #4
0
ファイル: ScheduleAddForm.cs プロジェクト: Ytaro273/Portal
        /// <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);
        }
コード例 #5
0
        /// <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;
            }
        }
コード例 #6
0
 public ScheduleLogicTests()
 {
     scheduleLogic = new ScheduleLogic(DBContextFactory.GetMockedDbContext());
 }