public async Task <PaymentDetailVM> AddBalanceToAccount(PaymentDetailVM paymentDetail) { _logger.LogInformation("PaymentService.AddAccountBalance - paymentMethodId=" + paymentDetail.PaymentMethod.Id); var dbPaymentMethod = await _dbContext.PaymentMethod.FirstOrDefaultAsync(p => p.HidrogenianId == paymentDetail.HidrogenianId); if (dbPaymentMethod == null) { dbPaymentMethod = new PaymentMethod { HidrogenianId = paymentDetail.HidrogenianId, AccountBalance = paymentDetail.PaymentMethod.AccountBalance, BalanceAddedOn = DateTime.UtcNow }; _dbContext.PaymentMethod.Add(dbPaymentMethod); } else { dbPaymentMethod.AccountBalance = paymentDetail.PaymentMethod.AccountBalance; dbPaymentMethod.BalanceAddedOn = DateTime.UtcNow; _dbContext.PaymentMethod.Update(dbPaymentMethod); } try { await _dbContext.SaveChangesAsync(); } catch (Exception e) { _logger.LogError("PaymentService.AddAccountBalance - Error: " + e); return(null); } paymentDetail.PaymentMethod.BalanceDate = dbPaymentMethod.BalanceAddedOn.Value.ToString(DATE_FORMATS.FULL_DATE_FRIENDLY.GetValue()); return(paymentDetail); }
public async Task <JsonResult> AddBalanceToAccount(PaymentDetailVM paymentDetail) { _logger.LogInformation("PaymentController.AddBalanceToAccount - Service starts."); var added = await _paymentService.AddBalanceToAccount(paymentDetail); return(added == null ? new JsonResult(new { Result = RESULTS.FAILED, Message = "An error occurred while saving your account balance. Please try again." }) : new JsonResult(new { Result = RESULTS.SUCCESS })); }
public async Task <JsonResult> AddPaymentDetails(PaymentDetailVM paymentDetail) { _logger.LogInformation("PaymentController.AddPaymentDetails - Service starts."); var newPaymentMethod = await _paymentService.InsertNewPaymentMethod(paymentDetail); return(newPaymentMethod == null ? new JsonResult(new { Result = RESULTS.FAILED, Message = "An error occurred while saving your new Payment Method. Please try again." }) : new JsonResult(new { Result = RESULTS.SUCCESS, Message = newPaymentMethod })); }
public async Task <JsonResult> UpdatePaymentDetails(PaymentDetailVM paymentDetail) { _logger.LogInformation("PaymentController.UpdatePaymentDetails - Service starts."); var updateResult = await _paymentService.UpdatePaymentMethods(paymentDetail); return(!updateResult.Key ? new JsonResult(new { Result = RESULTS.FAILED, Message = "Unable to find a Payment Method associated with your account." }) : (updateResult.Value == null ? new JsonResult(new { Result = RESULTS.FAILED, Message = "An error occurred while attempting to update your Payment Method. Please try again." }) : new JsonResult(new { Result = RESULTS.SUCCESS, Message = updateResult.Value }))); }
public async Task <JsonResult> GetPaymentDetailsFor(int hidrogenianId) { _logger.LogInformation("PaymentController.GetPaymentDetailsFor - hidrogenianId=" + hidrogenianId); var details = await _paymentService.RetrievePaymentMethodsFor(hidrogenianId); if (details != null) { return(new JsonResult(new { Result = RESULTS.SUCCESS, Message = details })); } details = new PaymentDetailVM { HidrogenianId = hidrogenianId }; return(new JsonResult(new { Result = RESULTS.SUCCESS, Message = details })); }
public async Task <PaymentDetailVM> InsertNewPaymentMethod(PaymentDetailVM paymentDetail) { _logger.LogInformation("PaymentService.InsertNewPaymentMethod - Service starts."); var dbPaymentMethod = new PaymentMethod(); if (paymentDetail.PaymentMethod.CreditCard != null) { dbPaymentMethod = new PaymentMethod { HolderName = paymentDetail.PaymentMethod.CreditCard.HolderName, CardNumber = paymentDetail.PaymentMethod.CreditCard.CardNumber, ExpiryDate = HelperProvider.ParseDateTimeString(paymentDetail.PaymentMethod.CreditCard.ExpiryDate, DATE_FORMATS.MONTH_YEAR.GetValue()), SecurityCode = paymentDetail.PaymentMethod.CreditCard.SecurityCode, CardAddedOn = DateTime.UtcNow } } ; if (paymentDetail.PaymentMethod.Paypal != null) { dbPaymentMethod = new PaymentMethod { PaypalAddress = paymentDetail.PaymentMethod.Paypal.Email, PaypalAddedOn = DateTime.UtcNow } } ; dbPaymentMethod.HidrogenianId = paymentDetail.HidrogenianId; _dbContext.PaymentMethod.Add(dbPaymentMethod); try { await _dbContext.SaveChangesAsync(); } catch (Exception e) { _logger.LogError("PaymentService.InsertNewPaymentMethod - Error: " + e); return(null); } paymentDetail.PaymentMethod.Id = dbPaymentMethod.Id; return(paymentDetail); }
public async Task <KeyValuePair <bool, PaymentDetailVM> > UpdatePaymentMethods(PaymentDetailVM paymentDetail) { _logger.LogInformation("PaymentService.UpdatePaymentMethods - Service starts."); var dbPaymentMethod = await _dbContext.PaymentMethod.FindAsync(paymentDetail.PaymentMethod.Id); if (dbPaymentMethod == null) { return(new KeyValuePair <bool, PaymentDetailVM>(false, null)); } dbPaymentMethod.HolderName = paymentDetail.PaymentMethod.CreditCard.HolderName; dbPaymentMethod.CardNumber = paymentDetail.PaymentMethod.CreditCard.CardNumber; dbPaymentMethod.ExpiryDate = HelperProvider.ParseDateTimeString(paymentDetail.PaymentMethod.CreditCard.ExpiryDate, DATE_FORMATS.MONTH_YEAR.GetValue()); dbPaymentMethod.SecurityCode = paymentDetail.PaymentMethod.CreditCard.SecurityCode; dbPaymentMethod.CardAddedOn = DateTime.UtcNow; dbPaymentMethod.PaypalAddress = paymentDetail.PaymentMethod.Paypal.Email; dbPaymentMethod.PaypalAddedOn = DateTime.UtcNow; _dbContext.PaymentMethod.Update(dbPaymentMethod); try { await _dbContext.SaveChangesAsync(); } catch (Exception e) { _logger.LogError("PaymentService.UpdatePaymentMethods - Error: " + e); return(new KeyValuePair <bool, PaymentDetailVM>(true, null)); } return(new KeyValuePair <bool, PaymentDetailVM>(true, paymentDetail)); }