コード例 #1
0
        static BaseContext()
        {
            Database.SetInitializer<BaseContext>(new DbInitializer());

            using (var db = new BaseContext())
                db.Database.Initialize(false);
        }
コード例 #2
0
 public Task<Account> GetBalance(int accountId)
 {
     using (var context = new BaseContext())
     {
         return context.Accounts.FirstOrDefaultAsync(a => a.Id == accountId);
     }
 }
コード例 #3
0
 public Task<bool> CheckPassword(int accountId, string password)
 {
     using (var context = new BaseContext())
     {
         return context.Accounts.AnyAsync(a=> a.Password == password && a.Id == accountId);
     }
 }
コード例 #4
0
 public async Task<int> InsertAccount(Account newAccount)
 {
     using (var context = new BaseContext())
     {
         context.Accounts.Add(newAccount);
         await context.SaveChangesAsync();
         return newAccount.Id;
     }
 }
コード例 #5
0
        public Customer CreateUser(string name)
        {
            using (var db = new BaseContext())
            {
                var newCustomer = new Models.Customer() { Name = name };
                db.Customers.Add(newCustomer);
                db.SaveChanges();

                return newCustomer;
            }
        }
コード例 #6
0
 public async Task DecrementBalance(int accountId, decimal amount)
 {
     using (var context = new BaseContext())
     {
         await context.Database.Connection.OpenAsync();
         using (var transaction = context.Database.Connection.BeginTransaction())
         {
             var accountObj = await context.Accounts.FirstOrDefaultAsync(account => accountId == account.Id);
             accountObj.Balance -= amount;
             context.Entry(accountObj).State = EntityState.Modified;
             await context.SaveChangesAsync();
             transaction.Commit();
         }
         context.Database.Connection.Close();
     }
 }