public void IncrementTotalTransactions(int UserID) { string retrieveUser = $"SELECT * FROM [dbo].[UserInfos] WHERE UserID = {UserID}"; var user = dbConnection.QueryFirstOrDefault <UserInfo>(retrieveUser); if (user != null) { user.TotalCurrentTransactions++; } dbContext.UserInfos.Update(user); dbContext.SaveChanges(); }
public async Task <IActionResult> Register(RegisterViewModel registerInput) { if (!ModelState.IsValid) { return(View(registerInput)); } DateTime currentDateTime = DateTime.Now; UserInfo newUserInfo = new UserInfo { AccountCreation = currentDateTime, LastActivity = currentDateTime, TotalCurrentTransactions = 0, TotalStatements = 0 }; dbContext.UserInfos.Add(newUserInfo); dbContext.SaveChanges(); // EF Core follows the insert and can now retrieve the auto-generated primary key id int newUserID = newUserInfo.UserID; IdentityUserExtended newUser = new IdentityUserExtended { UserName = registerInput.Username, Email = registerInput.Email, UserInfoID = newUserID }; // This overload of CreateAsync will automatically hash the password argument var result = await userManager.CreateAsync(newUser, registerInput.Password); if (result.Succeeded) { await signInManager.SignInAsync(newUser, isPersistent : false); return(RedirectToAction("Index", "Home")); } // If CreateAsync failed, document errors before returning to register page foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(View(registerInput)); }
public int CommitTransaction(TransactionViewModel transaction) { if (transaction.EditMode) { // Delete transaction in db because deemed easier to delete and recreate instead of update DeleteTransaction(transaction.JournalHeader.TransactionID); } // Check that user is not at transaction cap if (userInfoUtils.UserAtMaxTransactions(transaction.UserID)) { return(-1); } int tranID = -1; decimal?total = 0; foreach (JournalLineItemViewModel lineItem in transaction.PreviousEntries) { total += (lineItem.DebitAmount != null) ? lineItem.DebitAmount : 0; } JournalTransaction transactionEntry = new JournalTransaction() { Memo = transaction.JournalHeader.Memo, RecordedDateTime = DateTime.Now.ToString(), TotalAmount = (decimal)total, UserID = transaction.UserID }; try { dbContext.JournalTransactions.Add(transactionEntry); dbContext.SaveChanges(); } catch { return(-1); } tranID = transactionEntry.TransactionId; foreach (JournalLineItemViewModel lineItem in transaction.PreviousEntries) { JournalEntry entry = new JournalEntry() { AccountName = lineItem.AccountName, DebitBalance = AccountsInfo.DebitAccounts.Contains(lineItem.AccountName), DebitAmount = lineItem.DebitAmount, CreditAmount = lineItem.CreditAmount, ParentTransactionId = transactionEntry.TransactionId }; try { dbContext.JournalEntries.Add(entry); } catch { return(-1); } } try { dbContext.SaveChanges(); } catch { return(-1); } return(tranID); }