public Task <HttpResponseMessage> Get() { HttpResponseMessage response = new HttpResponseMessage(); try { List <Balance> leaderboard = _service.GetLeaderboard() as List <Balance>; var leaderboardResult = leaderboard.ConvertAll <LeaderbordModel>(x => new LeaderbordModel(x.Player.PlayerId, x.Points, x.LastUpdate)); response = Request.CreateResponse(HttpStatusCode.OK, leaderboardResult); } catch (Exception ex) { response = Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message); } var task = new TaskCompletionSource <HttpResponseMessage>(); task.SetResult(response); return(task.Task); }