public IHttpActionResult PutPortfolioBook(int Id, PortfolioBook portfolioBook)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (Id != portfolioBook.Id)
            {
                return BadRequest();
            }

            try
            {
                db.PortfolioBooks.Attach(portfolioBook);
                db.Entry(portfolioBook).State = EntityState.Modified;
                db.SaveChanges();
                db.Entry(portfolioBook).Collection(pb => pb.Items).Load();

                //Create a new temporary list to store the items.
                List<PortfolioItem> tempPortfolioItems = new List<PortfolioItem>();
                foreach (var item in portfolioBook.Items)
                {
                    tempPortfolioItems.Add(item);
                }

                //Go through the temporary list, figuring out if we need to add
                //or update the item.
                foreach (var item in tempPortfolioItems)
                {
                    var portItemToDelete = db.PortfolioItems.Where(t => t.Id == item.Id).FirstOrDefault();
                    //If we found it in the database we need to update it.
                    if (portItemToDelete != null)
                    {
                        //update case
                        db.PortfolioItems.Attach(item);
                        db.Entry(portItemToDelete).State = EntityState.Modified;
                    }
                    //Otherwise we're going to add it.
                    else
                    {
                        //adding
                        db.PortfolioItems.Add(item);
                    }
                }
                db.SaveChanges();
                return Ok<PortfolioBook>(portfolioBook);
            }
            catch (Exception ex)
            {
                //There was a problem storing the portfolio
                return StatusCode(HttpStatusCode.InternalServerError);
            }
        }
        public IHttpActionResult PostPortfolioBook(PortfolioBook portfolioBook)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            db.PortfolioBooks.Add(portfolioBook);
            db.SaveChanges();

            return Ok<PortfolioBook>(portfolioBook);
        }