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); }
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()); }
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); }
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)); }
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); }
/// <summary> /// Create a new Hotel /// </summary> /// <param name="hotel"></param> /// <returns></returns> public async Task <ActionResult> Init([FromBody] HotelInitModel hotel) { return(Created("", null)); }