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;
}));
}