//[ValidateModel] public async Task <IActionResult> CreateChildrenAndExtraBedPolicy([FromBody] ChildrenAndExtraBedPoliciesViewModel ChildrenAndExtraBedPoliciesViewModel) { ChildrenAndExtraBedPolicies childrenAndExtraBedPoliciesResult = null; string userName = base.LoggedInUserName; if (ChildrenAndExtraBedPoliciesViewModel != null && ChildrenAndExtraBedPoliciesViewModel.HotelId > default(int)) { //Fetch list of room by id List <Room> roomListResult = new List <Room>(); var maxChildAndExtraBedPerRoomList = ChildrenAndExtraBedPoliciesViewModel.MaxChildAndExtraBedPerRoomList; BaseResult <List <Room> > roomsResult = await iPolicies.GetRoomsById(ChildrenAndExtraBedPoliciesViewModel.MaxChildAndExtraBedPerRoomList).ConfigureAwait(false); if (roomsResult.IsError && roomsResult.ExceptionMessage != null) { return(new StatusCodeResult(500)); } var roomList = roomsResult.Result; //Map and retrieve childrenAndExtraBedPolicy and updated roomlist PoliciesRequestMapper.MapChildAndExtraBedPolicy(ref childrenAndExtraBedPoliciesResult, ref roomListResult, roomList, ChildrenAndExtraBedPoliciesViewModel, userName); //Save or Update Child and Extra Bed Policy BaseResult <ChildrenAndExtraBedPolicies> addOrUpdateChildrenAndExtraBedPoliciesResult = await iPolicies.SaveAndUpdateChildAndExtraBedPolicy(childrenAndExtraBedPoliciesResult, ChildrenAndExtraBedPoliciesViewModel.ObjectState).ConfigureAwait(false); if (addOrUpdateChildrenAndExtraBedPoliciesResult.IsError && addOrUpdateChildrenAndExtraBedPoliciesResult.ExceptionMessage != null) { return(new StatusCodeResult(500)); } else if (addOrUpdateChildrenAndExtraBedPoliciesResult.Result == null) { return(new NoContentResult()); } else if (addOrUpdateChildrenAndExtraBedPoliciesResult.Message != null) { return(BadRequest(addOrUpdateChildrenAndExtraBedPoliciesResult)); } //update list of room if (roomListResult.Count > 0) { BaseResult <bool> updateRoomListResult = await iPolicies.UpdateRoomList(roomListResult).ConfigureAwait(false); if (updateRoomListResult.IsError && updateRoomListResult.ExceptionMessage != null) { return(new StatusCodeResult(500)); } else if (!updateRoomListResult.Result) { return(new NotFoundResult());//404 } } return(Ok(addOrUpdateChildrenAndExtraBedPoliciesResult)); } return(BadRequest());//400 }
public async Task TestGetRoomsById_positive_Predicate_sample() { //Arrange List <MaxChildAndExtraBedPerRoomViewModel> maxChildAndExtraBedPerRoomViewModelList = new List <MaxChildAndExtraBedPerRoomViewModel>(); Room room = new Room(); var baseResult = new BaseResult <List <Room> >() { Result = new List <Room>() { room } }; var pred = new Func <Room, bool>(x => x.Id == 332 && x.IsActive && !x.IsDeleted); iRoomConnectionLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <Room, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult)); //Act Task <BaseResult <List <Room> > > result = policiesRepository.GetRoomsById(maxChildAndExtraBedPerRoomViewModelList); //Assert Assert.IsTrue(result.Result != null); Assert.IsTrue(result.Result is BaseResult <List <Room> >); }