/// <summary> /// Payment Deduct through Carditcard ID /// </summary> /// <param name="BookingID"></param> /// <returns></returns> public ActionResult PaypalValutthroughDeductPayment(int BookingID = 0) { if (BookingID != 0) { var db = GetDb(); String UserID = User.Identity.GetUserId(); PayPalbusinessLogic obj = new PayPalbusinessLogic(); // Token Get; string Token = PaypalConfiguration.GetAccessToken(); var UserAccountDetail = db.UserAccountDetail.Where(x => x.UserId == UserID && x.BookingID == BookingID).FirstOrDefault(); var response = obj.GetCraditCardPaypalValut(Token, UserAccountDetail.CraditcardID); var _AmountViewModel = (from ep in db.UserAccountDetail join e in db.Booking on ep.BookingID equals e.ID join see in db.SessionType on e.SessionType equals see.ID where ep.UserId == UserID && ep.BookingID == BookingID select new AmountViewModel { ID = ep.ID, Amount = see.Price, UserID = ep.UserId, CraditcardID = ep.CraditcardID, Email = ep.Email, BookingID = ep.BookingID, SessionType = e.SessionType, UserDetailID = ep.ID }).FirstOrDefault(); if (_AmountViewModel != null) { var PapalvalutAmountDeductResponse = obj.AmountDeduct(_AmountViewModel); if (PapalvalutAmountDeductResponse.state != "created") { PaymentDetails PaymentDetails = new PaymentDetails(); PaymentDetails.BookingID = _AmountViewModel.BookingID; PaymentDetails.Createddate = DateTime.Now; PaymentDetails.Updateddate = DateTime.Now; PaymentDetails.Status = "Success"; PaymentDetails.UserId = _AmountViewModel.UserID; PaymentDetails.TotalAmount = PapalvalutAmountDeductResponse.Amount; PaymentDetails.Intent = PapalvalutAmountDeductResponse.intent; PaymentDetails.ResponseID = PapalvalutAmountDeductResponse.id; PaymentDetails.UserDetailID = _AmountViewModel.UserDetailID; PaymentDetails.PaymentProcessed = true; db.PaymentDetail.Add(PaymentDetails); } } } return(View()); }