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}"); }
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 })); }