public 予約変更可能ルール(予約申請受付日 予約申請受付日) { _予約可能期間 = new 予約可能期間(予約申請受付日); var start = new 時分(10, 0); var end = new 時分(19, 0); 会議室オープン時間 = new 開放時間(start, end); }
public static 予約 Create(予約Id 予約Id, 予約者Id 予約者Id, 利用期間.利用期間 利用期間, 会議室Id 会議室Id, 会議参加予定者 会議参加予定者, 予約申請受付日 予約申請受付日) { new 予約可能ポリシー(予約申請受付日).ポリシー満たさなかったらExeption出す(利用期間); return(new 予約(予約Id, 予約者Id, 利用期間, 会議室Id, 会議参加予定者)); }
public 予約 更する(予約Id 予約Id, 予約者Id 予約者Id, 利用期間.利用期間 利用期間, 会議室Id 会議室Id, 会議参加予定者 会議参加予定者, 予約申請受付日 予約申請受付日) { if (!new 予約変更可能ルール.予約変更可能ルール(予約申請受付日).IsSatisfied(りようきかん)) { throw new ルール違反Exception("おまえ、値ちがうんやで2"); } return(new 予約(予約Id, 予約者Id, 利用期間, 会議室Id, 会議参加予定者)); }
public async Task 会議室予約するAsync(予約Request request, 予約申請受付日 よやくしんせいうけつけび) { // Todo: 予約Requestという名前がかなりやばい try { var 予約Id = _factory.Create(); var よやく = 予約.Create(予約Id, request.よやくしゃ, request.りようきかん, request.かいぎしつ, request.かいぎさんかよていしゃ, よやくしんせいうけつけび); await _repository.Add(よやく); } catch (ルール違反Exception ex) { // エラーで返す。 throw new UseCaseException(ex); } // 終了 }