private async Task <ActionResult> RetrieveSubmissionResults(int year, Guid schemeId, SubmissionsHistoryOrderBy orderBy)
        {
            if (Request != null &&
                !Request.IsAjaxRequest())
            {
                throw new InvalidOperationException();
            }

            if (!ModelState.IsValid)
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
            using (var client = apiClient())
            {
                try
                {
                    var schemeData = await client.SendAsync(User.GetAccessToken(), new GetSchemeById(schemeId));

                    var request = new GetSubmissionsHistoryResults(schemeId, schemeData.OrganisationId,
                                                                   year, orderBy, true);

                    var searchResults = await client.SendAsync(User.GetAccessToken(), request);

                    var model = new SubmissionsResultsViewModel
                    {
                        Year    = year,
                        Scheme  = schemeId,
                        Results = searchResults.Data,
                        OrderBy = orderBy
                    };

                    return(PartialView("_submissionsResults", model));
                }
                catch (ApiBadRequestException ex)
                {
                    this.HandleBadRequest(ex);
                    throw;
                }
            }
        }
        private async Task<ActionResult> RetrieveSubmissionResults(int year, Guid schemeId, SubmissionsHistoryOrderBy orderBy)
        {
            if (Request != null &&
                !Request.IsAjaxRequest())
            {
                throw new InvalidOperationException();
            }

            if (!ModelState.IsValid)
            {
                return Json(null, JsonRequestBehavior.AllowGet);
            }
            using (var client = apiClient())
            {
                try
                {
                    var schemeData = await client.SendAsync(User.GetAccessToken(), new GetSchemeById(schemeId));

                    var request = new GetSubmissionsHistoryResults(schemeId, schemeData.OrganisationId,
                        year, orderBy, true);

                    var searchResults = await client.SendAsync(User.GetAccessToken(), request);

                    var model = new SubmissionsResultsViewModel
                    {
                        Year = year,
                        Scheme = schemeId,
                        Results = searchResults.Data,
                        OrderBy = orderBy
                    };

                    return PartialView("_submissionsResults", model);
                }
                catch (ApiBadRequestException ex)
                {
                    this.HandleBadRequest(ex);
                    throw;
                }
            }
        }