Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        public static void Main(string[] args)
        {
            using (BPSContext context = new BPSContext())
            {
                //Initialize.Seed(context);
                //User user = GetUser(context);
                //GetUserInfo(user);


                PayBills(5, 1000000, context);
                Console.WriteLine();
            }
        }
Exemplo n.º 4
0
        private static User GetUser(BPSContext context)
        {
            User user = null;

            while (true)
            {
                Console.WriteLine("Enter UserId:");
                int userId = int.Parse(Console.ReadLine());
                user = context.Users.Where(x => x.UserId == userId).Include(x => x.PaymentMethods)
                       .ThenInclude(x => x.BankAccount).Include(x => x.PaymentMethods).ThenInclude(x => x.CreditCard)
                       .FirstOrDefault();

                if (user == null)
                {
                    Console.WriteLine($"User with id {userId} not found!");

                    userId = int.Parse(Console.ReadLine());
                    continue;
                }
                break;
            }

            return(user);
        }