public HttpResponseMessage Follow(string id, string followedId) { if (User.Identity.UserId() == id) { // Can't follow yourself if (id == followedId) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.PreconditionFailed)); } try { accountBusiness.Follow(id, followedId); } catch (ArgumentException) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); } HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, repository.GetUser(id, true)); response.Headers.Location = new Uri(Request.RequestUri, "/api/account/" + id); return(response); } throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); }