public IHttpActionResult DeleteUser(int id)
        {
            User user = db.Users.Find(id);

            if (user == null)
            {
                return NotFound();
            }

            //Locate All posts by user
            var posts = db.Posts.Where(p => p.UserId == user.UserId);

            //Remove all posts by user
            db.Posts.RemoveRange(posts);

            //Save Changes
            db.SaveChanges();

            //remove Customer
            db.Users.Remove(user);

            db.SaveChanges();

            //Return model to USer
            var userModel = new UserModel
            {
                UserId = user.UserId,
                Username = user.Username,
                Password = user.Password,
                EmailAddress = user.EmailAddress,
                TwitterHandle = user.TwitterHandle,
                CreatedDate = user.CreatedDate,
                PhoneNumber = user.PhoneNumber

            };

            return Ok(userModel);
        }
        public IHttpActionResult GetUser(int id)
        {
            User user = db.Users.Find(id);

            if (user == null)
            {
                return NotFound();
            }

            UserModel modelUser = new UserModel
            {
                UserId = user.UserId,
                CreatedDate = user.CreatedDate,
                Username = user.Username,
                Password = user.Password,
                EmailAddress = user.EmailAddress,
                PhoneNumber = user.PhoneNumber
            };

            return Ok(modelUser);
        }
        public IHttpActionResult PutUser(int id, UserModel user)
        {
            //If not valid
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            //If user is not found
            if (id != user.UserId)
            {
                return BadRequest();
            }

            //Update User In Database
            var dbUser = db.Users.Find(id);

            //Updates Entry State in DB
            db.Entry(user).State = EntityState.Modified;

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

            return StatusCode(HttpStatusCode.NoContent);
        }
        public IHttpActionResult PostUser(UserModel user)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            //Build new User
            var dbUser = new User();

            //Update User with new Model
            dbUser.Update(user);

            //Add user to Database
            db.Users.Add(dbUser);

            db.SaveChanges();

            user.UserId = dbUser.UserId;

            return CreatedAtRoute("DefaultApi", new { id = user.UserId }, user);
        }