Ejemplo n.º 1
0
        public async Task <IHttpActionResult> GetTransacitonByCustId([FromUri] int id, Transaction transaction)
        {
            Customer customer = await _context.Customers.FindAsync(id);

            //Transaction transactionId = await _context.Transactions.FindAsync(customer.Id);

            List <Transaction> transactions = await _context.Transactions.ToListAsync();

            List <Transaction> tranList = new List <Transaction>();

            if (customer != null)
            {
                foreach (var item in transactions)
                {
                    if (item.CustomerId == id)
                    {
                        tranList.Add(item);
                    }
                    // return Ok(tranList);
                }
                if (customer.Id == id)
                {
                    return(Ok(tranList));
                }
            }
            return(NotFound());
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> UpdateTransaction([FromUri] int id, [FromBody] Transaction updatedTransaction)
        {
            //check if id's match

            if (id != updatedTransaction?.Id)
            {
                return(BadRequest("Id's do not match."));
            }
            //check modelstate
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //find transaction
            Transaction transaction = await _context.Transactions.FindAsync(id);

            Product product = await _context.Products.FindAsync(transaction.ProductSKU);

            //transaction doesn't exist
            if (transaction is null)
            {
                return(NotFound());
            }
            if (updatedTransaction.CustomerId != null)
            {
                transaction.CustomerId = updatedTransaction.CustomerId;
            }
            if (updatedTransaction.DateOfTransaction != null)
            {
                transaction.DateOfTransaction = updatedTransaction.DateOfTransaction;
            }


            if (transaction.ProductSKU == updatedTransaction.ProductSKU & updatedTransaction.ProductSKU != null)
            {
                if (transaction.ItemCount > updatedTransaction.ItemCount)
                {
                    product.NumberInInventory = product.NumberInInventory + (transaction.ItemCount - updatedTransaction.ItemCount);
                }
                else
                {
                    product.NumberInInventory = product.NumberInInventory - (updatedTransaction.ItemCount - transaction.ItemCount);
                }
            }
            if (transaction.ProductSKU != updatedTransaction.ProductSKU & updatedTransaction.ProductSKU != null)
            {
                Product updatedProduct = await _context.Products.FindAsync(updatedTransaction.ProductSKU);

                if (transaction.ItemCount > updatedTransaction.ItemCount)
                {
                    updatedProduct.NumberInInventory = updatedProduct.NumberInInventory + (transaction.ItemCount - updatedTransaction.ItemCount);
                    product.NumberInInventory        = product.NumberInInventory - (transaction.ItemCount - updatedTransaction.ItemCount);
                }
                else
                {
                    updatedProduct.NumberInInventory = updatedProduct.NumberInInventory - (updatedTransaction.ItemCount - transaction.ItemCount);
                } product.NumberInInventory = product.NumberInInventory + (updatedTransaction.ItemCount - transaction.ItemCount);
            }
            if (updatedTransaction.ItemCount != null)
            {
                transaction.ItemCount = updatedTransaction.ItemCount;
            }
            if (updatedTransaction.ProductSKU != null)
            {
                transaction.ProductSKU = updatedTransaction.ProductSKU;
            }

            await _context.SaveChangesAsync();

            return(Ok("Transaction was updated."));
        }