public async Task UpdateData() { IsLoading = true; var data = await DevicesService.GetDevicesList(new GetDeviceListQuery { PageNumber = 1, PageSize = 100 }); var deviceDetailTasks = data.Result.Select(x => DevicesService.GetDeviceStatus(new GetDeviceStatusQuery { DeviceId = x.DeviceId })); var deviceDetails = await Task.WhenAll(deviceDetailTasks); Data = data.Result.Zip(deviceDetails, (deviceData, deviceStatusDetails) => new DeviceListRowVm { DeviceId = deviceData.DeviceId, DeviceName = deviceData.DeviceName, IsOnline = deviceData.IsOnline, LastStatusUpdate = deviceData.LastStatusUpdate, DeviceStatusDetails = deviceStatusDetails }); IsLoading = false; }