protected void Page_Load(object sender, EventArgs e) { var client = DIContainer.Resolve <IOrderViewClient>(); var initialPageNumber = 1; var initialQuantity = 1; // First request to get total count of records. var data = client.GetOrders(SiteContext.CurrentSiteName, initialPageNumber, initialQuantity).Result; if (data?.Success ?? false) { if ((data.Payload.Orders?.Count() ?? 0) > 0) { // Second request to get all records. data = client.GetOrders(SiteContext.CurrentSiteName, initialPageNumber, data.Payload.TotalCount).Result; if (data?.Success ?? false) { var customers = BaseAbstractInfoProvider.GetInfosByIds(CustomerInfo.OBJECT_TYPE, data.Payload.Orders.Select(o => o.CustomerId)); // Unigrid accept only DataSet as source type. grdOrders.DataSource = ToDataSet( data.Payload.Orders.Select(o => { var customer = customers[o.CustomerId] as CustomerInfo; return(new { o.Id, o.Status, o.TotalPrice, o.CreateDate, CustomerName = customer != null ? $"{customer.CustomerFirstName} {customer.CustomerLastName}" : string.Empty }); })); } } } if (!(data?.Success ?? false)) { var exc = new InvalidOperationException(data?.ErrorMessages); EventLogProvider.LogException("OrdersList - Load", "EXCEPTION", exc); } }