public static void Seed(BPSContext dbContext) { var user = new User("John", "Smith", "*****@*****.**", "somePassword"); var cards = SeedCreditCards(); var bankAccount = new BankAccount(1000m, "CoolBank", "SWPP252P"); var paymentMethods = new PaymentMethod[] { new PaymentMethod(user, cards[0], PaymentType.CreditCard), //======= test index ========// //new PaymentMethod(user,cards[0],PaymentType.CreditCard), new PaymentMethod(user, cards[1], PaymentType.CreditCard), new PaymentMethod(user, bankAccount, PaymentType.BankAccount), //======test check constraint======// //new PaymentMethod(user,bankAccount,cards[1],PaymentType.BankAccount) }; dbContext.Users.Add(user); dbContext.CreditCards.AddRange(cards); dbContext.BankAccounts.Add(bankAccount); dbContext.PaymentMethods.AddRange(paymentMethods); dbContext.SaveChanges(); }
private static void PayBills(int userId, decimal amount, BPSContext context) { var accountsMethods = context .PaymentMethods .Include(pm => pm.BankAccount) .Where(pm => pm.UserId == userId && pm.Type == PaymentType.BankAccount) .OrderBy(pm => pm.BankAccountId) .ToArray(); var cardsMethods = context .PaymentMethods .Include(pm => pm.CreditCard) .Where(pm => pm.UserId == userId && pm.Type == PaymentType.CreditCard) .OrderBy(pm => pm.CreditCardId) .ToArray(); var totalMoney = accountsMethods.Sum(pm => pm.BankAccount.Balance) + cardsMethods.Sum(c => c.CreditCard.LimitLeft); if (totalMoney >= amount) { Withdraw(amount, accountsMethods); Withdraw(amount, cardsMethods); context.SaveChanges(); return; } Console.WriteLine(ErrorMessages.NotEnoughMoney); }