public static void Main()
public async Task<JsonResult> LoadAllDashboardData()
List<object> resultList = null;
List<Task<LenderWebResponse>> taskList = new List<Task<LenderWebResponse>>();
List<LendersHubRequest> requestList = null;
if (User.IsInRole("SuperAdmin"))
requestList = new List<LendersHubRequest>
new LendersHubRequest { RequestType = LendersRequestType.GetDahboardCustomerData },
new LendersHubRequest { RequestType = LendersRequestType.GetDahboardOrderData },
new LendersHubRequest { RequestType = LendersRequestType.GetDahboardProductData }
requestList = new List<LendersHubRequest>
new LendersHubRequest { RequestType = LendersRequestType.GetDahboardOrderData },
new LendersHubRequest { RequestType = LendersRequestType.GetDahboardProductData }
IEnumerable<Task<LendersHubResponse< PL_ApplicationsStatusCount>>> tasks = requestList.Select(id => CallAPIServicesToGetDashboardData(id));
LendersHubResponse<PL_ApplicationsStatusCount>[] dashBoardData = await Task.WhenAll(tasks);
resultList = new List<object>();
object dashboardOrderCount, dashboardProductCount;
dashboardOrderCount = dashboardProductCount = new object();
foreach (LendersHubResponse<PL_ApplicationsStatusCount> res in dashBoardData)
if (res.RequestType == LendersRequestType.GetDahboardOrderData)
res.Result.ApplicationsStatusesCount.ForEach(x => x.StatusName = ((Status)x.Name).ToString());
dashboardOrderCount = res.Result;
if (res.RequestType == LendersRequestType.GetDahboardProductData)
dashboardProductCount = res.Result;
resultList.Add(res.Result);
return new JsonResult(new { success = resultList?.Count > 0 ? true : false, DashboardData = dashboardOrderCount, ProductData = dashboardProductCount });
return new JsonResult(new { success = false });
Console.WriteLine("Hello World");
private async Task<LendersHubResponse<PL_ApplicationsStatusCount>> CallAPIServicesToGetDashboardData(LendersHubRequest request)
LendersHubResponse<PL_ApplicationsStatusCount> responseList = new LendersHubResponse<PL_ApplicationsStatusCount>();
APICaller caller = new APICaller(_uiConfiguration.LendersHubAPI, _uiConfiguration.ProcessRequestMethod, "POST", request, (HttpContext.GetTokenAsync("access_token").Result));
var responseData = await caller.SendRequest();
if (!string.IsNullOrEmpty(responseData))
LenderWebResponse responseLists = Newtonsoft.Json.JsonConvert.DeserializeObject<LenderWebResponse>(responseData);
responseList = Newtonsoft.Json.JsonConvert.DeserializeObject<LendersHubResponse<PL_ApplicationsStatusCount>>(responseLists.data.ToString());
responseList.RequestType = request.RequestType;