コード例 #1
0
        public async Task CancelBooking_TicketBookedshouldbecancelled()
        {
            //Arrange
            string userid = "222", userName = "******";
            string BookingID = "354436";

            BookingCancel objBookingCancel = new BookingCancel();

            objBookingCancel.BookingID = BookingID;
            objBookingCancel.UserID    = userid;
            objBookingCancel.UserName  = userName;

            _eventRepoMock.Setup(x => x.CancelBookingDB(objBookingCancel)).ReturnsAsync("Booking Cancelled");

            BookingCancelResponse objBookingCancelResponse = new BookingCancelResponse();

            objBookingCancelResponse.ResponseMessage = "Booking Cancelled";
            objBookingCancelResponse.UserID          = userid;
            objBookingCancelResponse.UserName        = userName;
            objBookingCancelResponse.BookingID       = BookingID;
            //Act

            var customer = await _EventBookingService.CancelBooking(objBookingCancel);

            //Assert

            Assert.Equal(objBookingCancelResponse.ResponseMessage, customer.ResponseMessage);
            Assert.Equal(objBookingCancelResponse.UserID, customer.UserID);
            Assert.Equal(objBookingCancelResponse.UserName, customer.UserName);
            Assert.Equal(objBookingCancelResponse.BookingID, customer.BookingID);
        }
コード例 #2
0
        public async Task CancelBooking_TicketBookedshouldbecancelled()
        {
            //Arrange
            string userid = "222", userName = "******";
            string BookingID = "354436";

            BookingCancel objBookingCancel = new BookingCancel();

            objBookingCancel.BookingID = BookingID;
            objBookingCancel.UserID    = userid;
            objBookingCancel.UserName  = userName;

            BookingCancelResponse objBookingCancelResponse = new BookingCancelResponse();

            objBookingCancelResponse.ResponseMessage = "Booking Cancelled";
            objBookingCancelResponse.UserID          = userid;
            objBookingCancelResponse.UserName        = userName;
            objBookingCancelResponse.BookingID       = BookingID;

            _eventBookingService.Setup(x => x.CancelBooking(objBookingCancel)).ReturnsAsync(objBookingCancelResponse);

            //Act
            var customer = await _EventBookingController.CancelBooking(objBookingCancel);

            //Assert
            Assert.NotNull(customer);
        }
コード例 #3
0
        public async Task CancelBooking_TicketBookedshouldbecancelled()
        {
            //Arrange
            string userid = "222", userName = "******";
            string BookingID = "354436";

            BookingCancel objBookingCancel = new BookingCancel();

            objBookingCancel.BookingID = BookingID;
            objBookingCancel.UserID    = userid;
            objBookingCancel.UserName  = userName;

            string queryString = "";

            queryString = "sp_CustBookingCancel @userID,@userName,@BookingID,@MessageStatus OUT";

            _eventDBMock.Setup(x => x.ExecuteAsyncSql(It.IsAny <SqlParameter[]>(), queryString, 3)).ReturnsAsync("Booking Cancelled");

            BookingCancelResponse objBookingCancelResponse = new BookingCancelResponse();

            objBookingCancelResponse.ResponseMessage = "Booking Cancelled";
            objBookingCancelResponse.UserID          = userid;
            objBookingCancelResponse.UserName        = userName;
            objBookingCancelResponse.BookingID       = BookingID;
            //Act

            var customer = await _eventBookingRepository.CancelBookingDB(objBookingCancel);

            //Assert

            Assert.Equal(objBookingCancelResponse.ResponseMessage, customer);
        }
コード例 #4
0
        public async Task <BookingCancelResponse> CancelBooking(BookingCancel ObjBookingCancel)
        {
            BookingCancelResponse objBookingCancelResponse = new BookingCancelResponse();
            string ResponseMessage = await _eventBookingRepository.CancelBookingDB(ObjBookingCancel);

            objBookingCancelResponse.ResponseMessage = ResponseMessage;
            objBookingCancelResponse.UserID          = ObjBookingCancel.UserID;
            objBookingCancelResponse.UserName        = ObjBookingCancel.UserName;
            objBookingCancelResponse.BookingID       = ObjBookingCancel.BookingID;
            return(objBookingCancelResponse);
        }
コード例 #5
0
        /// <summary>
        /// THis methos will be used after getting status sucess from roomxml
        /// </summary>
        /// <returns></returns>
        public ActionResult SaleRefund(string bookingID)
        {
            var hotelTransaction = this.hotelBookingService.GetHotelBookingTransactionByBookingID(bookingID, this.User.Identity.GetUserId());
            // var BookingContent = this.hotelBookingService.GetHotelBookingContent(this.User.Identity.GetUserId(), hotelTransaction.re);
            //var hotelBookingResult = this.hotelBookingService.GetHotelBookingResultByUserId(this.User.Identity.GetUserId());
            var paypalTransaction           = this.hotelBookingService.GetPaypalBookingTransactionByUserId(this.User.Identity.GetUserId(), hotelTransaction.ResultId);
            BookingCancelResponse cancelObj = CancelHotelBooking(Convert.ToString(hotelTransaction.BookingID));
            var cancellationDetails         = this.hotelBookingService.GetCancellationDetailByBookingID(hotelTransaction.BookingID);
            var sortedReadings = cancellationDetails.OrderBy(x => x.CancelFromDate.TimeOfDay)
                                 .ThenBy(x => x.CancelFromDate.Date)
                                 .ThenBy(x => x.CancelFromDate.Year);
            double refundAmount = 0;
            string cancelAmount = "";

            foreach (var item in sortedReadings)
            {
                if (item.CancelFromDate.Date > DateTime.UtcNow.Date)
                {
                    cancelAmount = item.CancelAmount;
                    break;
                }
            }
            refundAmount = Convert.ToDouble(hotelTransaction.Amount) - Convert.ToDouble(cancelAmount);
            string Amount = String.Format("{0:0.00}", refundAmount);

            if (cancelObj.BookingCancelResult.CommitLevel.ToLower() == "confirm")
            {
                var apiContext = Configuration.GetAPIContext();
                var refund     = new Refund()
                {
                    amount = new PayPal.Api.Amount()
                    {
                        currency = "USD",
                        total    = Amount
                    }
                };

                var sale = new Sale()
                {
                    id = paypalTransaction.SaleId
                };

                var response = sale.Refund(apiContext, refund);

                if (response.state == "completed")
                {
                    PaypalBookingTransaction PaypalBookingTransaction = new PaypalBookingTransaction();
                    PaypalBookingTransaction.BookingDate   = paypalTransaction.BookingDate;
                    PaypalBookingTransaction.UserId        = this.User.Identity.GetUserId();
                    PaypalBookingTransaction.TransactionId = paypalTransaction.TransactionId;
                    PaypalBookingTransaction.ResultId      = paypalTransaction.ResultId;
                    PaypalBookingTransaction.SaleId        = response.sale_id;
                    PaypalBookingTransaction.BookingAmount = paypalTransaction.BookingAmount;
                    PaypalBookingTransaction.RefundAmount  = response.amount.total;
                    PaypalBookingTransaction.CancelId      = response.id;
                    PaypalBookingTransaction.Status        = response.state;
                    PaypalBookingTransaction.CancelDate    = Convert.ToDateTime(response.create_time);
                    PaypalBookingTransaction.Type          = "C";
                    this.hotelBookingService.AddPaypalBookingTransaction(PaypalBookingTransaction);

                    hotelTransaction.CancelBy = this.User.Identity.GetUserId();
                    this.hotelBookingService.UpdateHotelBookingTransaction(hotelTransaction);
                }
            }

            return(RedirectToAction("BookingDetails"));
        }