Beispiel #1
0
        public void 利用期間が30日より先だと予約ができない()
        {
            var かいし    = new 開始年月日時分(2021, 10, 20, 10, 0);
            var しゅうりょう = new 終了年月日時分(2021, 10, 20, 10, 15);

            // TODO:DateTime.Nowはかなり怪しい。けど、頭がふやふやなので、いまはこれでいく。
            Assert.Throws <ArgumentException>(() => new 利用期間(かいし, しゅうりょう, DateTime.Now));
        }
Beispiel #2
0
        public void 利用期間が30日より先だと予約ができない()
        {
            var かいし    = new 開始年月日時分(2021, 10, 20, 10, 0);
            var しゅうりょう = new 終了年月日時分(2021, 10, 20, 10, 15);
            var 起点日    = new DateTime(2020, 10, 19);

            var 利用期間 = new 利用期間(かいし, しゅうりょう);

            Assert.Throws <ルール違反Exception>(() =>
                                           予約.Create(new 予約Id("0"), new 予約者Id(), 利用期間, new 会議室Id(), new 会議参加予定者(), new 予約申請受付日(起点日))
                                           );
        }
        public async Task <ActionResult> Post(Reserve reserve)
        {
            // var repository = new InMemory予約Repository();
            // var factory = new 予約IdFactory();
            // var useCase = new UseCase(_repository, factory);

            var request = new 予約Request();

            var かいし = new 開始年月日時分(reserve.start_datetime.Year,
                                  reserve.start_datetime.Month,
                                  reserve.start_datetime.Day,
                                  reserve.start_datetime.Hour,
                                  reserve.start_datetime.Minute);

            var しゅうりょう = new 終了年月日時分(reserve.end_datetime.Year,
                                     reserve.end_datetime.Month,
                                     reserve.end_datetime.Day,
                                     reserve.end_datetime.Hour,
                                     reserve.end_datetime.Minute);

            var 起点日 = DateTime.Now;

            request.りようきかん = new 利用期間(かいし, しゅうりょう);

            // Todo: パラメータ無視している
            request.かいぎさんかよていしゃ = new 会議参加予定者();
            request.よやくしゃ       = new 予約者Id();
            request.かいぎしつ       = new 会議室Id();

            try
            {
                await _useCase.会議室予約するAsync(request, new 予約申請受付日(起点日));
            }
            catch (Exception e) {
                var resp = new HttpResponseMessage(HttpStatusCode.Conflict)
                {
                    //Content = new StringContent(e.InnerException.Message),
                    ReasonPhrase = e.InnerException.Message
                };
                //throw new System.Web.Http.HttpResponseException(resp);
                return(new JsonResult(resp));
            }
            return(new JsonResult(reserve));
        }
Beispiel #4
0
        public async Task 予約する()
        {
            var repository = new InMemory予約Repository();
            var factory    = new 連番予約IdFactory();
            var useCase    = new UseCase(repository, factory);

            var request = new 予約Request();

            request.よやくしゃ = new 予約者Id();

            var かいし    = new 開始年月日時分(2021, 1, 20, 10, 0);
            var しゅうりょう = new 終了年月日時分(2021, 1, 20, 11, 0);
            var 起点日    = new DateTime(2020, 12, 29);

            request.りようきかん      = new 利用期間(かいし, しゅうりょう);
            request.かいぎさんかよていしゃ = new 会議参加予定者();
            request.かいぎしつ       = new 会議室Id();

            await useCase.会議室予約するAsync(request, new 予約申請受付日(起点日));

            var result = repository.Get(new 予約Id("0"));

            result.IsNotNull();
        }