// POST api/Messages
        public HttpResponseMessage PostMessage(Message message)
        {
            if (ModelState.IsValid)
            {
                message.SubmissionDate = DateTime.Now;
                db.Messages.Add(message);
                db.SaveChanges();

                //Route message to a recipient of the desired type.
                var possibleRecipients = db.Users.Where(a => a.Type == message.Destination).ToList();
                if (possibleRecipients.Count() != 0)
                {
                    var rand = new Random();
                    var recipient = possibleRecipients.ElementAt(rand.Next(possibleRecipients.Count()));
                    //Make new unread message assignment and save.
                    MessageAssignment theNewAssignment = new MessageAssignment();
                    theNewAssignment.MessageID = message.ID;
                    theNewAssignment.UserID = recipient.ID;
                    theNewAssignment.Unread = true;
                    db.MessageAssignments.Add(theNewAssignment);
                    db.SaveChanges();
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = message.ID }));
                return response;
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }
        // PUT api/Messages/5
        public HttpResponseMessage PutMessage(int id, Message message)
        {
            if (ModelState.IsValid && id == message.ID)
            {
                db.Entry(message).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound);
                }

                return Request.CreateResponse(HttpStatusCode.OK, message);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }