示例#1
0
        public IHttpActionResult PostExpense(ExpenseUserModel expense)
        {
            var userID = db.Users.FirstOrDefault(x => x.UserName == expense.UserName).Id;

            if (!ModelState.IsValid)
            {
                //return BadRequest(ModelState);
            }
            expense.Expense.UserId = userID;

            db.Expenses.Add(expense.Expense);
            db.SaveChanges();


            var transaction = new Transaction();

            transaction.ProjectID   = (short?)expense.Expense.ProjectID;
            transaction.AssetID     = (short?)expense.Expense.AssetID;
            transaction.SupplierID  = (int?)expense.Expense.SupplierID;
            transaction.ExpenseID   = (int?)expense.Expense.ExpenseID;
            transaction.TotalAmount = (int?)expense.Expense.Amount;

            db.Transaction.Add(transaction);


            var supplier = db.Suppliers.FirstOrDefault(x => x.SupplierID == expense.Expense.SupplierID);

            supplier.AmountPaid = (supplier.AmountPaid != null ? supplier.AmountPaid : 0) + expense.Expense.Amount;


            db.SaveChanges();

            return(Ok(expense));
        }
示例#2
0
        public IHttpActionResult PutExpense(ExpenseUserModel expense)
        {
            var userID = db.Users.FirstOrDefault(x => x.UserName == expense.UserName).Id;

            expense.Expense.UserId = userID;

            var id = expense.Expense.ExpenseID;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != expense.Expense.ExpenseID)
            {
                return(BadRequest());
            }

            db.Entry(expense.Expense).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ExpenseExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }