public async Task<IHttpActionResult> Create(HouseHoldAccount model) { var user = db.Users.Find(User.Identity.GetUserId()); if (!ModelState.IsValid) { return BadRequest(ModelState); } var accountNameExists = user.HouseHold.HouseHoldAccounts.Any(a => a.Name == model.Name); if (accountNameExists) { return Ok("You already have an account called: " + model.Name + " . Please chose another name."); } else { var account = new HouseHoldAccount() { Name = model.Name, Balance = model.Balance, HouseHoldId = (int)user.HouseHoldId }; db.HouseHoldAccounts.Add(account); var trans = new Transaction() { Description = "New Account: " + model.Name + " created.", Amount = model.Balance, HouseHoldAccountId = model.HouseHoldId, CategoryId = 1, Created = DateTimeOffset.Now, }; db.Transactions.Add(trans); await db.SaveChangesAsync(); return Ok(account); } }
public async Task<IHttpActionResult> Edit(HouseHoldAccount model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var oldAccount = db.HouseHoldAccounts.AsNoTracking().FirstOrDefault(a => a.id == model.id); //check balance if (oldAccount.Balance != model.Balance) { var adjBal = oldAccount.Balance - model.Balance; db.Transactions.Add(new Transaction() { Description = "User Adjusted Balance", Amount = adjBal, CategoryId = 2, Created = DateTimeOffset.Now, HouseHoldAccountId = model.id }); oldAccount.Balance -= adjBal; } db.Update<HouseHoldAccount>(model, "Name", "Balance"); await db.SaveChangesAsync(); return Ok(oldAccount); }