Esempio n. 1
0
        private readonly コマ数 koma;              // e.g. 12コマ

        public 予約期間(予約年月日 ReservationDate, 予約開始_時 予約開始_時, 予約開始_分 予約開始_分, コマ数 予約コマ数)
        {
            //todo: ビジネスルール:10:00-19:00までしか予約が出来ない
            // 予約開始時刻とコマ数を見て、10:00-19:00までしか予約できないことを確認する
            var 残コマ数 = コマ数.残コマ数を教えて(予約開始_時, 予約開始_分);

            if (!(残コマ数 >= 予約コマ数))
            {
                throw new ArgumentException($"{残コマ数}を超えることはできません");
            }

            //todo:
            // 1. このメソッドの中で、予約開始時刻のDateTimeとコマ数のDateTimeを貰って、
            // 計算をして、10:00-19:00以内だよね?ということを確認する
            // ↑DateTimeをおもらしするのは止めたほうが良さそう。
            //
            //   1-1: Range が終了時刻を判断する (from 予約開始時刻、コマ数)

            // 予約開始_時と予約開始_分を渡して、残コマ数が取れる。それを比較する。

            // 2. ↑の計算を予約開始時刻クラスか、コマ数クラスの中に委譲する?
            //   2-1: 予約開始時刻が最大コマ数とかをくれる?

            // 3. ↑もしかしたら、それ専用のクラスを作るか?

            // 最終手段. コマ数をやめて、予約終了時刻を作るか?

            this.ReservationDate = ReservationDate;
            this.予約開始_時          = 予約開始_時;
            this.予約開始_分          = 予約開始_分;
            this.koma            = 予約コマ数;
        }
Esempio n. 2
0
 public bool に引数が収まっているか教えて(コマ数 対象)
 {
     return(this.Value >= 対象.Value);
 }