Пример #1
0
        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));
        }
Пример #2
0
        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));
            }
        }