/// <summary> /// adds a card /// </summary> /// <param name="card"></param> /// <returns></returns> public Common.Models.Card AddCard(Common.Models.Card card, Guid userId) { using (var context = new PaymentsDbContext(ContextOptions)) { try { var cardnumber = card.CardNumber; card.CardNumber = MaskCardNumber(cardnumber); var dbCard = context.Cards.FirstOrDefault(c => c.CardNumber == card.CardNumber && c.CVC == card.CVC && c.UserId == userId && c.ExpiryDate == card.ExpiryDate); if (dbCard == null || string.IsNullOrWhiteSpace(dbCard.Id.ToString())) { card.Id = Guid.NewGuid(); var newCard = MyMapper.Map <Models.Card>(card); newCard.UserId = userId; context.Cards.Add(newCard); context.SaveChanges(); } else { card.Id = dbCard.Id; } return(card); //var toReturn = MyMapper.Map<Common.Models.Card>(result); //return toReturn; } catch (Exception ex) { Log.LogError(ex, ""); Log.LogError(ex, $"Failed to create user"); throw ex; } } }
/// <summary> /// updates a paymentr with BankPaymentId and success/failure information /// </summary> public Payment UpdatePayment(Payment paymentRequest) { using (var context = new PaymentsDbContext(ContextOptions)) { try { Log.LogInformation($"Updating Payment: {paymentRequest.PaymentId}"); var payment = context.Payments.First(p => p.Id == paymentRequest.PaymentId); payment.BankPaymentId = paymentRequest.BankPaymentId; payment.IsSuccessful = payment.IsSuccessful; payment.Message = paymentRequest.Message; payment.PaymentStatusId = paymentRequest.Status; payment.Updated = DateTime.UtcNow; payment.RequestCompleted = paymentRequest.RequestCompleted.GetValueOrDefault(); context.SaveChanges(); return(paymentRequest); } catch (Exception ex) { Log.LogError(ex, $"Failed tgo Update the payment {paymentRequest.PaymentId}"); paymentRequest.Message = ex.Message; return(paymentRequest); } } }
/// <summary> /// adds a user /// </summary> /// <param name="user"></param> /// <returns></returns> public Common.Models.User AddUser(Common.Models.User user) { using (var context = new PaymentsDbContext(ContextOptions)) { try { var dbUser = context.Users.FirstOrDefault(u => u.Fullname == user.Fullname && u.DateOfBirth == user.DateOfBirth); if (dbUser == null || string.IsNullOrWhiteSpace(dbUser.Id.ToString())) { user.Id = Guid.NewGuid(); context.Users.Add(MyMapper.Map <Models.User>(user)); context.SaveChanges(); } else { user.Id = dbUser.Id; } return(user); } catch (Exception ex) { Log.LogError(ex, $"Failed to create user"); throw ex; } } }
/// <summary> /// Adds a new payment /// </summary> public Common.Models.Payment StorePayment(Common.Models.Payment paymentRequest) { using (var context = new PaymentsDbContext(ContextOptions)) { try { var dbPayment = context.Payments.FirstOrDefault(c => c.Id == paymentRequest.PaymentId); if (dbPayment == null || string.IsNullOrWhiteSpace(dbPayment.Id.ToString())) { Log.LogInformation($"Adding the payment to the database: {paymentRequest.PaymentId}"); var newPayment = MyMapper.Map <Models.Payment>(paymentRequest); context.Payments.Add(newPayment); context.SaveChanges(); } else { Log.LogWarning($"Duplicate Payment: {paymentRequest.PaymentId}"); paymentRequest.Status = Common.Enums.PaymentStatus.DuplicateRequest; paymentRequest.IsSuccessful = false; paymentRequest.Message = $"Duplicate payment request"; } return(paymentRequest); } catch (Exception ex) { Log.LogError(ex, "Failed to store payment"); paymentRequest.Status = PaymentStatus.PaymentNotStored; return(paymentRequest); } } }
public List <Payment> CreatePayment(int PaymentNumber, string Status) { var dbPayments = _dbContext.payment; if (Status == null) { throw new ArgumentNullException(); } if (Status != "InProcesing" && Status != "Success") { throw new InvalidStatusException("Invalid status"); } foreach (var p in dbPayments) { if (p.PaymentNumber == PaymentNumber) { throw new NumberAlreadyExists("Payment number already exists"); } } _dbContext.payment.Add(new Payment(PaymentNumber, Status)); _dbContext.SaveChanges(); return(_dbContext.payment.ToList()); }
public async Task <ActionResult <string> > Get(Guid providerReference, bool success) { var paymentMock = _paymentsDbContext.MockPayments.FirstOrDefault(x => x.ProviderReference == providerReference); if (paymentMock == null) { return(NotFound()); } if (paymentMock.PaymentStatus != PaymentStatus.New) { return(BadRequest()); } if (success) { await _bus.Publish(new PaymentMockPaid() { PaymentReference = paymentMock.PaymentReference, PaymentMockId = paymentMock.Id }); paymentMock.PaymentStatus = PaymentStatus.Completed; } else { paymentMock.PaymentStatus = PaymentStatus.Failed; } _paymentsDbContext.SaveChanges(); return(Ok(new { returnUrl = "/orderPlaced" })); // todo thats mock of mock... }
public void CreateUser(UserDTO user) { _context.Users.Add(user); _context.SaveChanges(); }
public IActionResult Post([FromBody] Payment payment) { _quotesDbContext.Payments.Add(payment); _quotesDbContext.SaveChanges(); return(StatusCode(StatusCodes.Status201Created)); }