コード例 #1
0
ファイル: HotetServiceTest.cs プロジェクト: Drew40B/Hotel
        public async void CreateHotel()
        {
            var config  = TestHelper.GetIConfigurationRoot();
            var service = new HotelService.Web.Services.HotelService(config, _mapper);

            var init = new HotelInitModel
            {
                Location      = "Somewhere",
                Name          = _prefix,
                FloorCount    = 5,
                RoomsPerFloor = 10,
                Amenities     = new string[] { "Coffee Maker", "Fridge" },
                Mode          = CreateMode.Random
            };

            var result = await service.Create(init);
        }
コード例 #2
0
        public string[] Validate(HotelInitModel hotel)
        {
            var result = new List <string>();

            if (hotel.FloorCount > MAX_FLOORS)
            {
                result.Add($"Floor count greater than max floor count: ${MAX_FLOORS}");
            }

            if (hotel.RoomsPerFloor > MAX_ROOMS_PER_FLOOR)
            {
                result.Add($"Rooms per floor greater tham maximum: ${MAX_ROOMS_PER_FLOOR}");
                return(null);
            }

            return(result.ToArray());
        }
コード例 #3
0
ファイル: HotetServiceTest.cs プロジェクト: Drew40B/Hotel
        public void CreateRandomRoom()
        {
            var config  = TestHelper.GetIConfigurationRoot();
            var service = new HotelService.Web.Services.HotelService(config, null);
            var init    = new HotelInitModel
            {
                Location      = "Somewhere",
                Name          = _prefix,
                FloorCount    = 5,
                RoomsPerFloor = 10,
                Amenities     = new string[] { "Coffee Maker", "Fridge" },
                Mode          = CreateMode.Random
            };

            var room = service.CreateRoom(1, 3, init);

            Assert.Equal(room.Number, 103);
            Assert.True(room.MaxOccupants > 1);
            Assert.True(room.Description.Length > 1);
        }
コード例 #4
0
        public async Task <HotelModel> Create(HotelInitModel hotel)
        {
            var dto = new HotelDbModel();

            dto.Name     = hotel.Name;
            dto.Location = hotel.Location;


            for (int floor = 1; floor <= hotel.FloorCount; floor++)
            {
                for (int room = 1; room <= hotel.RoomsPerFloor; room++)
                {
                    dto.Rooms.Add(CreateRoom(floor, room, hotel));
                }
            }

            await _hotels.InsertOneAsync(dto);

            return(_mapper.Map <HotelModel>(dto));
        }
コード例 #5
0
        public RoomDbModel CreateRoom(int floor, int roomNumber, HotelInitModel model)
        {
            roomNumber = floor * 100 + roomNumber;

            RoomDbModel room = null;

            switch (model.Mode)
            {
            case CreateMode.Random:
                room = CreateRandomRoom();
                break;

            default:
                throw new ArgumentException($"Unknown room creation mode: {model.Mode} ");
            }

            room.Number       = roomNumber;
            room.Description  = $"Room# ${roomNumber}";
            room.MaxOccupants = 4;
            room.Amenities    = model.Amenities;
            return(room);
        }
コード例 #6
0
 /// <summary>
 /// Create a new Hotel
 /// </summary>
 /// <param name="hotel"></param>
 /// <returns></returns>
 public async Task <ActionResult> Init([FromBody] HotelInitModel hotel)
 {
     return(Created("", null));
 }