예제 #1
0
        public void Confirm(ConfirmBookingDto confirmBooking)
        {
            _logger.LogInformation($"Payment Confirmation request. Amount: [{confirmBooking.Amount}], CodePro: [{confirmBooking.CodePro}], Currency: [{confirmBooking.Currency}], DateTime: [{confirmBooking.DateTime}], Hash: [{confirmBooking.Hash}], Label: [{confirmBooking.Label}], NotificationType: [{confirmBooking.NotificationType}], OperationId: [{confirmBooking.OperationId}], Sender: [{confirmBooking.Sender}]");

            if (!ValidateConfirmForm(HttpContext.Request.Form, out string paramString))
            {
                _logger.LogWarning($"Payment Confirmation hash checking failed. Param string: {paramString}");
                return;
            }

            var guid = new Guid(confirmBooking.Label);

            _payService.ConfirmBooking(guid, confirmBooking.Amount);

            _logger.LogInformation($"Payment Confirmation success. Guid: {guid}");
        }
예제 #2
0
        public async Task <IActionResult> ConfirmBooking(ConfirmBookingDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var booking = new Booking();

            booking.PreBookingId         = model.PreBookingId;
            booking.CarId                = model.CarId;
            booking.UserId               = model.UserId;
            booking.IsDeleted            = false;
            booking.CreateByUserId       = model.UserId;
            booking.CreateOnDate         = DateTime.Now;
            booking.LastModifiedOnDate   = DateTime.Now;
            booking.LastModifiedByUserId = model.UserId;

            await _genericRepository.Add(booking);

            await _genericRepository.SaveChangesAsync();

            var user = await _userService.GetUserByIdAsync(booking.UserId);

            var    http     = (HttpContext.Request.IsHttps == true ? "https://" : "http://");
            string HostName = http + HttpContext.Request.Host;

            await _emailService.SendEmailAsync(user.Email, "Booking Information",
                                               $" Hello " + user.FirstName + " " + user.LastName + ", thank you for your booking" + "<br/><br/>" + "Booking number:" + booking.Id + "<br/><br/>" + "Booking email:" + user.Email + "<br/><br/>" + "This is an automated email by the system. If you shouldn't be recieving this email, please ignore it." + " <br/><br/>Car Rental.", false);

            return(Ok(new
            {
                status = 200,
                message = "Booking created successfully",
                id = booking.Id,
                user = booking.UserId
            }));
        }