private async static Task GetConversation(ParameterAPIRequest<SingleItem<Conversation>, int> request)
        {
            logger.Log(LogLevel.Debug, "Attempting To Retrieve Conversation: " + request.RequestArgs);
            //Task<Conversation> task = new Task<Conversation>(() => client.GetConversation(request.RequestArgs));
            //task.Start();
            //request.SetResult(task.Result);
            SingleItem<Conversation> result = await client.GetConversation(request.RequestArgs);
            request.SetResult(result);
            logger.Log(LogLevel.Debug, "Sucessfully Retrieved Conversation: " + request.RequestArgs);

        }
        public static void VeryAPI(ParameterAPIRequest<Paged<Mailbox>,string> request)
        {
            logger.Log(LogLevel.Debug, "Attempting To Verify API Key");

            HelpScoutClient testClient = new HelpScoutClient(request.RequestArgs);
            Task<Paged<Mailbox>> task = new Task<Paged<Mailbox>>(() => testClient.ListMailboxes());
            request.SetResult(task.Result);

            logger.Log(LogLevel.Debug, "Sucessfully Verified API Key");
        }
 private async static Task GetTeamOverallReport(ParameterAPIRequest<TeamReport, CompareRequest> request)
 {
     logger.Log(LogLevel.Debug, "Attempting To Retrieve Team Overall Report");
     //Task<TeamReport> task = new Task<TeamReport>(() => client.GetTeamOverall(request.RequestArgs));
     //task.Start();
     TeamReport result = await client.GetTeamOverall(request.RequestArgs);
     request.SetResult(result);
     logger.Log(LogLevel.Debug, "Sucessfully Retrieved Team Overall");
 }
 public async static Task GetUserRatings(ParameterAPIRequest<PagedReport<HelpScoutNet.Model.Report.Common.Rating>, UserRatingsRequest> request)
 {
     logger.Log(LogLevel.Debug, "Attempting To Retrieve User Ratings");
     //Task<PagedReport<HelpScoutNet.Model.Report.Common.Rating>> task = new Task<PagedReport<HelpScoutNet.Model.Report.Common.Rating>>(() => client.GetUserRatings(request.RequestArgs));
     //task.Start();
     PagedReport<HelpScoutNet.Model.Report.Common.Rating> result = await client.GetUserRatings(request.RequestArgs);
     request.SetResult(result);
     logger.Log(LogLevel.Debug, "Sucessfully Retrieved User Ratings");
 }
 public async static Task GetUserHappiness(ParameterAPIRequest<UserHappiness, UserRequest> request)
 {
     logger.Log(LogLevel.Debug, "Attempting To Retrieve User Happiness");
     //Task<UserHappiness> task = new Task<UserHappiness>(() => client.GetUserHappiness(request.RequestArgs));
     //task.Start();
     UserHappiness result = await client.GetUserHappiness(request.RequestArgs);
     request.SetResult(result);
     logger.Log(LogLevel.Debug, "Sucessfully Retrieved User Happiness");
 }
 public async static Task GetUserReport(ParameterAPIRequest<UserReport, UserRequest> request)
 {
     //Task<UserReport> task = new Task<UserReport>(() => client.GetUserOverallReport(request.RequestArgs));
     //task.Start();
     UserReport results = await client.GetUserOverallReport(request.RequestArgs);
     request.SetResult(results);
 }
        public static void RetrieveTeamOverall(DateTime start, DateTime end)
        {
            ParameterAPIRequest<HelpScoutNet.Model.Report.Team.TeamReport, CompareRequest> teamOverallRequest = new ParameterAPIRequest<HelpScoutNet.Model.Report.Team.TeamReport, CompareRequest>(new CompareRequest(start, end), APICallType.TeamOverall);

            teamOverallRequest.ResultReady += RecieveTeamOverallStat;
        }