/// <summary> /// Return the mapped ChildrenAndExtraBedPoliciesViewModel /// </summary> /// <param name="ChildrenAndExtraBedPolicies"></param> /// <returns>ChildAndExraBedPolicyListViewModel</returns> public static BaseResult <List <ChildrenAndExtraBedPoliciesViewModel> > MapChildrenAndExtraBedPolicyToAddOrUpdate(BaseResult <List <ChildrenAndExtraBedPolicies> > childrenAndExtraBedPoliciesListDetail, BaseResult <List <MaxChildAndExtraBedPerRoom> > maxChildAndExtraBedPerRoomViewModelListDetail) { BaseResult <List <ChildrenAndExtraBedPoliciesViewModel> > childrenAndExtraBedPoliciesViewModelList = new BaseResult <List <ChildrenAndExtraBedPoliciesViewModel> >(); ChildrenAndExtraBedPoliciesViewModel model = new ChildrenAndExtraBedPoliciesViewModel(); List <ChildrenAndExtraBedPoliciesViewModel> modelList = new List <ChildrenAndExtraBedPoliciesViewModel>(); foreach (var item in childrenAndExtraBedPoliciesListDetail.Result) { model.Id = item.Id; model.IsChildrenAllowed = item.IsChildrenAllowed; model.MinChildAge = item.MinChildAge; model.MaxChildAge = item.MaxChildAge; model.IsExtraCotAllowed = item.IsExtraCotAllowed; model.MinInfantAge = item.MinInfantAge; model.MaxInfantAge = item.MaxInfantAge; model.CotPrice = item.CotPrice; model.CotPriceTypeId = item.CotPriceTypeId; model.IsExtraBedAllowed = item.IsExtraBedAllowed; model.HotelId = item.HotelId; } var maxChildAndExtraBedPerRoomListResult = MapMaxChildAndExtraBedPerRoom(maxChildAndExtraBedPerRoomViewModelListDetail); model.MaxChildAndExtraBedPerRoomList.AddRange(maxChildAndExtraBedPerRoomListResult.Result); modelList.Add(model); childrenAndExtraBedPoliciesViewModelList.Result = modelList; return(childrenAndExtraBedPoliciesViewModelList); }
public async Task TestCreateChildrenAndExtraBedPolicy_Success_OkResponse() { //Arrange List <Room> roomList = new List <Room>(); MaxChildAndExtraBedPerRoomViewModel maxChildAndExtraBedPerRoomModel = new MaxChildAndExtraBedPerRoomViewModel() { HotelId = 5, RoomId = 332, RoomName = "Large", BedCount = 2, ExtraBedCount = 1, MaxChildren = 2, NoOfGuest = 4 }; ChildrenAndExtraBedPoliciesViewModel childrenAndExtraBedPoliciesViewModel = new ChildrenAndExtraBedPoliciesViewModel() { HotelId = 5, IsChildrenAllowed = true, MinChildAge = 0, MaxChildAge = 4, IsExtraCotAllowed = true, MinInfantAge = 2, MaxInfantAge = 5, IsExtraBedAllowed = true, CotPrice = 1000, CotPriceTypeId = 2, }; ChildrenAndExtraBedPolicies childrenAndExtraBedPoliciesModel = new ChildrenAndExtraBedPolicies(); childrenAndExtraBedPoliciesViewModel.ObjectState = ObjectState.Added; childrenAndExtraBedPoliciesViewModel.MaxChildAndExtraBedPerRoomList.Add(maxChildAndExtraBedPerRoomModel); ObjectState objectState = ObjectState.Added; mockPoliciesRepository.Setup(x => x.GetRoomsById(It.IsAny <List <MaxChildAndExtraBedPerRoomViewModel> >())).Returns(Task.FromResult(new BaseResult <List <Room> >() { Result = roomList })).Verifiable(); mockPoliciesRepository.Setup(a => a.SaveAndUpdateChildAndExtraBedPolicy(It.IsAny <ChildrenAndExtraBedPolicies>(), objectState)).Returns(Task.FromResult(new BaseResult <ChildrenAndExtraBedPolicies> { Result = new ChildrenAndExtraBedPolicies() })); mockPoliciesRepository.Setup(a => a.SaveAndUpdateChildAndExtraBedPolicy(It.IsAny <ChildrenAndExtraBedPolicies>(), objectState)).Returns(Task.FromResult(new BaseResult <ChildrenAndExtraBedPolicies> { Result = childrenAndExtraBedPoliciesModel })).Verifiable(); mockPoliciesRepository.Setup(a => a.UpdateRoomList(It.IsAny <List <Room> >())).Returns(Task.FromResult(new BaseResult <bool> { Result = true })).Verifiable(); //Act Task <IActionResult> actionResult = mockPoliciesController.CreateChildrenAndExtraBedPolicy(childrenAndExtraBedPoliciesViewModel); //Assert BaseResult <ChildrenAndExtraBedPolicies> saveOrUpdatechildrenAndExtraBedPolicies = (actionResult.Result as Microsoft.AspNetCore.Mvc.OkObjectResult).Value as BaseResult <ChildrenAndExtraBedPolicies>; Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)actionResult.Result).StatusCode, 200); Assert.IsNotNull(saveOrUpdatechildrenAndExtraBedPolicies); Assert.IsTrue(saveOrUpdatechildrenAndExtraBedPolicies.Result != null); }
//[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 TestCreateChildrenAndExtraBedPolicy_Exception_BySaveAndUpdateChildAndExtraBedPolicy_InternalServerError() { //Arrange List <Room> roomList = new List <Room>(); MaxChildAndExtraBedPerRoomViewModel maxChildAndExtraBedPerRoomModel = new MaxChildAndExtraBedPerRoomViewModel() { HotelId = 5, RoomId = 332, RoomName = "Large", BedCount = 2, ExtraBedCount = 1, MaxChildren = 2, NoOfGuest = 4 }; ChildrenAndExtraBedPoliciesViewModel childrenAndExtraBedPoliciesViewModel = new ChildrenAndExtraBedPoliciesViewModel() { HotelId = 5, IsChildrenAllowed = true, MinChildAge = 0, MaxChildAge = 4, IsExtraCotAllowed = true, MinInfantAge = 2, MaxInfantAge = 5, IsExtraBedAllowed = true, CotPrice = 1000, CotPriceTypeId = 2, }; childrenAndExtraBedPoliciesViewModel.ObjectState = ObjectState.Added; childrenAndExtraBedPoliciesViewModel.MaxChildAndExtraBedPerRoomList.Add(maxChildAndExtraBedPerRoomModel); ObjectState objectState = ObjectState.Added; mockPoliciesRepository.Setup(x => x.GetRoomsById(It.IsAny <List <MaxChildAndExtraBedPerRoomViewModel> >())).Returns(Task.FromResult(new BaseResult <List <Room> >() { Result = roomList })).Verifiable(); mockPoliciesRepository.Setup(x => x.SaveAndUpdateChildAndExtraBedPolicy(It.IsAny <ChildrenAndExtraBedPolicies>(), objectState)).Returns(Task.FromResult(new BaseResult <ChildrenAndExtraBedPolicies>() { IsError = true, ExceptionMessage = Helper.Common.GetMockException() })).Verifiable(); //Act Task <IActionResult> actionResult = mockPoliciesController.CreateChildrenAndExtraBedPolicy(childrenAndExtraBedPoliciesViewModel); //Assert mockPoliciesRepository.Verify(); Assert.IsTrue(actionResult != null); Assert.AreEqual(((Microsoft.AspNetCore.Mvc.StatusCodeResult)actionResult.Result).StatusCode, 500); }
/// <summary> /// Map ChildrenAndExtraBedPolicies /// </summary> /// <param name="childrenAndExtraBedPoliciesViewModel"></param> /// <param name="isActive"></param> /// <param name="isDeleted"></param> /// <returns></returns> public static void MapChildAndExtraBedPolicy(ref ChildrenAndExtraBedPolicies childrenAndExtraBedPoliciesResult, ref List <Room> roomListResult, List <Room> roomList, ChildrenAndExtraBedPoliciesViewModel childrenAndExtraBedPoliciesViewModel, string userName) { childrenAndExtraBedPoliciesResult = new ChildrenAndExtraBedPolicies(); childrenAndExtraBedPoliciesResult.Id = childrenAndExtraBedPoliciesViewModel.Id; childrenAndExtraBedPoliciesResult.IsChildrenAllowed = childrenAndExtraBedPoliciesViewModel.IsChildrenAllowed; childrenAndExtraBedPoliciesResult.MinChildAge = childrenAndExtraBedPoliciesViewModel.MinChildAge; childrenAndExtraBedPoliciesResult.MaxChildAge = childrenAndExtraBedPoliciesViewModel.MaxChildAge; childrenAndExtraBedPoliciesResult.IsExtraCotAllowed = childrenAndExtraBedPoliciesViewModel.IsExtraCotAllowed; childrenAndExtraBedPoliciesResult.IsExtraBedAllowed = childrenAndExtraBedPoliciesViewModel.IsExtraBedAllowed; childrenAndExtraBedPoliciesResult.MinInfantAge = childrenAndExtraBedPoliciesViewModel.MinInfantAge; childrenAndExtraBedPoliciesResult.MaxInfantAge = childrenAndExtraBedPoliciesViewModel.MaxInfantAge; childrenAndExtraBedPoliciesResult.CotPrice = childrenAndExtraBedPoliciesViewModel.CotPrice; childrenAndExtraBedPoliciesResult.CotPriceTypeId = childrenAndExtraBedPoliciesViewModel.CotPriceTypeId; //(childrenAndExtraBedPoliciesViewModel.CotPriceTypeId==null)? 1: childrenAndExtraBedPoliciesViewModel.CotPriceTypeId.Value; childrenAndExtraBedPoliciesResult.HotelId = childrenAndExtraBedPoliciesViewModel.HotelId; childrenAndExtraBedPoliciesResult.IsActive = true; childrenAndExtraBedPoliciesResult.IsDeleted = false; foreach (var item in childrenAndExtraBedPoliciesViewModel.MaxChildAndExtraBedPerRoomList) { foreach (var room in roomList) { if (room.Id == item.RoomId && item.ObjectState == ObjectState.Modified)// { room.ExtraBedCount = item.ExtraBedCount; room.CreatedBy = userName; room.UpdatedBy = userName; room.MaxChildren = item.MaxChildren; roomListResult.Add(room); } } } }