public decimal CalculateBookingPrice(Booking booking)
        {
            var room = _roomRepo.GetRoom(booking.RoomId);

            var numberOfNights = (booking.CheckOutDate - booking.CheckInDate).Days;
            var price          = room.Rate * numberOfNights;

            if (booking.CouponCode != null)
            {
                var discount = _couponRepo.GetCoupon(booking.CouponCode).PercentageDiscount;
                price = price - (price * discount / 100);
            }

            return(price);
        }
Exemple #2
0
        public decimal CalculateBookingPrice(Booking booking)
        {
            var room           = _roomsRepository.GetRoom(booking.RoomId);
            var numberOfNights = (booking.CheckOutDate - booking.CheckInDate).Days;
            var price          = room.Rate * numberOfNights;

            if (string.IsNullOrEmpty(booking.CouponCode))
            {
                return(price);
            }

            var discount = _couponRepository.GetCoupon(booking.CouponCode).PercentageDiscount;

            price = price - (price * discount / 100);

            return(price);
        }
Exemple #3
0
        public async Task <object> Checkout(CheckoutHeaderDto checkoutHeader)
        {
            try
            {
                CartDto cartDto = await _cartRepository.GetCartByUserId(checkoutHeader.UserId);

                if (cartDto == null)
                {
                    return(BadRequest());
                }

                if (!string.IsNullOrEmpty(checkoutHeader.CouponCode))
                {
                    CouponDto coupon = await _couponRepository.GetCoupon(checkoutHeader.CouponCode);

                    if (checkoutHeader.DiscountTotal != coupon.DiscountAmount)
                    {
                        _response.IsSuccess     = false;
                        _response.ErrorMessages = new List <string>()
                        {
                            "Coupon Price has changed, please confirm"
                        };
                        _response.DisplayMessage = "Coupon Price has changed, please confirm";
                        return(_response);
                    }
                }

                checkoutHeader.CartDetails = cartDto.CartDetails;
                //logic to add message to process order.
                await _messageBus.PublishMessage(checkoutHeader, "checkoutqueue");

                ////rabbitMQ
                //_rabbitMQCartMessageSender.SendMessage(checkoutHeader, "checkoutqueue");
                await _cartRepository.ClearCart(checkoutHeader.UserId);
            }
            catch (Exception ex)
            {
                _response.IsSuccess     = false;
                _response.ErrorMessages = new List <string>()
                {
                    ex.ToString()
                };
            }
            return(_response);
        }
Exemple #4
0
 public PhieuNhapXuat getCoupon(String key)
 {
     return(_couponrepository.GetCoupon(key));
 }
 public Coupon GetCoupon(System.Int32 CouponId)
 {
     return(_iCouponRepository.GetCoupon(CouponId));
 }
 public Coupon GetCoupon(string coupon)
 {
     return(_couponRepository.GetCoupon(coupon));
 }