Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        //[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
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <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);
                    }
                }
            }
        }