public async Task <double> TransferByID(double transferAmount, int userId, string phoneNumber) { var updatedBalance = 0.0; using (var dbContext = new DigitalWalletDbContext()) { var accountrecord = await this.GetAccountInformation(userId); accountrecord.TotalBalance -= transferAmount; if (accountrecord.TotalBalance < 0) { throw new Exception("Insufficient account balance! Please deposit and try again."); } dbContext.Account.Update(accountrecord); var registerRecord = dbContext.Register.Where(l => l.PhoneNumber == (Convert.ToString(phoneNumber))).FirstOrDefault(); var transferRecordId = registerRecord.RegisterId; var accountInfo = dbContext.Account.Where(m => m.Accountid == transferRecordId).FirstOrDefault(); accountInfo.TotalBalance += transferAmount; dbContext.Account.Update(accountInfo); await dbContext.SaveChangesAsync(); updatedBalance = accountrecord.TotalBalance; } return(updatedBalance); }
public async Task InsertRecord(Register register) { using (var dbContext = new DigitalWalletDbContext()) { dbContext.Register.Add(register); await dbContext.SaveChangesAsync(); } }
public async Task <Account> GetAccountInformation(int regid) { using (var dbContext = new DigitalWalletDbContext()) { var accountInfo = dbContext.Account.Where(m => m.Registerid == regid).FirstOrDefault(); return(accountInfo); } }
public async Task <double> GetAccountBalanceByAccountid(int accountId) { using (var dbContext = new DigitalWalletDbContext()) { var accountInfo = dbContext.Account.Where(m => m.Accountid == accountId).FirstOrDefault(); var totalbalance = accountInfo.TotalBalance; return(totalbalance); } }
public async Task <int> GetAccountIdByUserId(int registerUserId) { using (var dbContext = new DigitalWalletDbContext()) { var accountrecord = await this.GetAccountInformation(registerUserId); return(accountrecord.Accountid); } }
public async Task <Models.Register> GetRegisteredUserByLogin(Login login) { using (var dbContext = new DigitalWalletDbContext()) { var user = dbContext.Register.Where(l => string.Equals(l.Email, login.Input) || string.Equals(l.PhoneNumber, login.Input)).SingleOrDefault(); if (user != null) { return(user); } return(null); } }
public async Task <double> DepositByID(int userId, double depositAmount) { var updatedBalance = 0.0; using (var dbContext = new DigitalWalletDbContext()) { var accountrecord = await this.GetAccountInformation(userId); accountrecord.TotalBalance += depositAmount; dbContext.Account.Update(accountrecord); await dbContext.SaveChangesAsync(); updatedBalance = accountrecord.TotalBalance; } return(updatedBalance); }
public async Task <bool> IsValidLogin(Login login, Models.Register user) { using (var dbContext = new DigitalWalletDbContext()) { if (user != null) { if (string.Equals(user.Password, login.Password)) { var loginHistory = new LoginHistory(); loginHistory.Email = user.Email; loginHistory.PhoneNumber = user.PhoneNumber; loginHistory.RegisterId = user.RegisterId; dbContext.LoginHistory.Add(loginHistory); await dbContext.SaveChangesAsync(); return(true); } } return(false); } }