private QvDataContractResponse GetTables(ConnectorParameter parameter, string appId) { var tables = new List <QvxTable>(); try { var qlikApp = AppInstance.GetQlikInstance(parameter, appId); if (qlikApp == null) { return new QvDataContractTableListResponse { qTables = tables } } ; var options = new NxGetObjectOptions() { Types = new List <string> { "table" } }; var appObjects = qlikApp.FirstSession.CurrentApp.GetObjectsAsync(options).Result; foreach (var obj in appObjects) { var table = obj.AsObject <Table>(); tables.Add(new QvxTable() { TableName = $"{table.Title} [{table.Id}]" }); } var masterObjectList = qlikApp.FirstSession.CurrentApp.GetMasterObjectListAsync().Result; var listLayout = masterObjectList?.GetLayout()?.As <MasterObjectListLayout>(); if (listLayout != null) { foreach (var item in listLayout.AppObjectList.Items) { if (item.Data.Visualization == "table") { tables.Add(new QvxTable() { TableName = $"{item.Data.Title} [{item.Info.Id}]" }); } } } return(new QvDataContractTableListResponse { qTables = tables }); } catch (Exception ex) { logger.Error(ex, $"tables form app {appId} not loaded."); return(new QvDataContractTableListResponse { qTables = tables }); } }
private QvDataContractResponse GetTables(UserParameter parameter, string appName) { var tables = new List <QvxTable>(); q2gconhypercubemain.Connection connection = null; using (MappedDiagnosticsLogicalContext.SetScoped("connectionId", connection?.ConnId)) { try { var config = QlikApp.CreateConfig(parameter, appName); var qlikApp = new QlikApp(parameter); var appId = qlikApp.GetAllApps(config).FirstOrDefault(a => a.qDocName == appName).qDocId; config = QlikApp.CreateConfig(parameter, appId); connection = qlikApp.CreateNewConnection(config); var options = new NxGetObjectOptions() { qTypes = new List <string> { "table" } }; var tablesObjects = connection.CurrentApp.GetObjectsAsync(options).Result; foreach (var obj in tablesObjects) { var tableObject = connection.CurrentApp.GetObjectAsync(obj.qInfo.qId).Result; dynamic layout = tableObject.GetLayoutAsync <JObject>().Result; tables.Add(new QvxTable() { TableName = $"{layout.title} [{obj.qInfo.qId}]" }); } options = new NxGetObjectOptions() { qTypes = new List <string> { "masterobject" } }; var visualisations = connection.CurrentApp.GetObjectsAsync(options).Result; foreach (var element in visualisations) { var tableObject = connection.CurrentApp.GetObjectAsync(element.qInfo.qId).Result; dynamic layout = tableObject.GetLayoutAsync <JObject>().Result; tables.Add(new QvxTable() { TableName = $"{layout.qMeta.title} [{element.qInfo.qId}]" }); } return(new QvDataContractTableListResponse { qTables = tables }); } catch (Exception ex) { logger.Error(ex, $"tables form app {appName} not loaded."); return(new QvDataContractTableListResponse { qTables = tables }); } finally { connection?.Close(); } } }