public HttpResponseMessage CreateGoal(HttpRequestMessage request, GoalViewModel goal) { return(CreateHttpResponse(request, () => { HttpResponseMessage response; if (!ModelState.IsValid) { response = request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } else { var newGoal = new Goal(); newGoal.CreateGoal(goal); // Asign goal to a user var userProfile = _userProfileRepository.GetSingle(goal.UserProfileId); newGoal.UserProfile = userProfile; _goalRepository.Add(newGoal); UnitOfWork.Commit(); goal = Mapper.Map <Goal, GoalViewModel>(newGoal); response = request.CreateResponse(HttpStatusCode.Created, goal); } return response; })); }