public IActionResult RemoveFromWishList(WishListToReceive wishListReceived)
        {
            //BookingManager bookingManager = new BookingManager();

            WishListDuplicate wishListToBeRemoved = new WishListDuplicate();

            wishListToBeRemoved.RoomId   = wishListReceived.RoomId;
            wishListToBeRemoved.RenterId = wishListReceived.RenterId;

            Acknowledgement <WishListDuplicate> returnData = new Acknowledgement <WishListDuplicate>();

            if (!ModelState.IsValid)
            {
                returnData = search.WhenErrorOccurs("", type: "modelState");
                return(Ok(returnData));
            }

            try
            {
                // returnData = BookingManager.(wishListReceived);
                returnData = search.DeleteFromWishList(wishListToBeRemoved);
            }
            catch (NotThereInWishList notThereInWishList)
            {
                returnData = search.WhenErrorOccurs(notThereInWishList.Message, type: "delete");  //this will call a overloaded method in bookingManager
                return(Ok(returnData));
            }
            catch (Exception)
            {
                returnData = search.WhenErrorOccurs("", type: "delete");
                return(Ok(returnData));
            }
            return(Ok(returnData));
        }
        public void RemoveFromWishList_NegativeTestCases_NotThereEx()
        {
            WishListToReceive wishListToReceive = new WishListToReceive();

            wishListToReceive.RenterId = 2;
            wishListToReceive.RoomId   = 4;

            WishList wishReceived = new WishList();

            wishReceived.RenterId = 2;
            wishReceived.RoomId   = 4;

            //Assign
            var _mockBusinessMethod = new Mock <BookingManager>();
            var Wish_List           = RemoveFromWishList_Mock_Negative();

            _mockBusinessMethod.Setup(p => p.AddingToWishList(wishReceived)).Throws(new NotThereInWishList(wishReceived.RoomId, wishReceived.RenterId));
            BookingController _bookingController = new BookingController(_mockBusinessMethod.Object);
            //Act
            var _returnedAddedWishList            = _bookingController.PostWishList(wishListToReceive);
            var _returnedAddedWishListAck         = _returnedAddedWishList as OkObjectResult;
            var _originalReturnedAddedWishListAck = RemoveFromWishList_Mock_Negative();

            //Assert
            Assert.IsNotNull(_returnedAddedWishListAck);
            Assert.ReferenceEquals(_returnedAddedWishListAck.Value, _originalReturnedAddedWishListAck);
        }
        //   public IActionResult PostWishList(WishList wishListReceived)
        public IActionResult PostWishList(WishListToReceive wishListReceived)
        {
            //BookingManager bookingManager = new BookingManager();

            WishList wishListToBeAdded = new WishList();

            wishListToBeAdded.RenterId = wishListReceived.RenterId;
            wishListToBeAdded.RoomId   = wishListReceived.RoomId;

            Acknowledgement <WishListDuplicate> returnData = new Acknowledgement <WishListDuplicate>();

            //to avoid nulls that r present due to foreign key in model class "wishlist" we are using generic for duplicate wishlist.

            if (!ModelState.IsValid)
            {
                returnData = search.WhenErrorOccurs("", type: "modelState");  //this will call a method in bookingManager
                return(Ok(returnData));
            }

            try
            {
                returnData = search.AddingToWishList(wishListToBeAdded);
            }
            catch (AlreadyThereInWishList alreadyThere)
            {
                returnData = search.WhenErrorOccurs(alreadyThere.Message, type: "post");  //this will call a overloaded method in bookingManager
                return(Ok(returnData));
            }

            catch (SqlException)
            {
                returnData = search.WhenErrorOccurs("", type: "post");  //this will call a overloaded method in bookingManager
                return(Ok(returnData));
            }
            catch (Exception)
            {
                returnData = search.WhenErrorOccurs("", type: "post");
                return(Ok(returnData));
            }
            return(Ok(returnData));
        }