private async Task <QueryAppsResult> RequestDocumentsFromOracle(int entityId, int categoryId) { var entities = await GetEntities(); var entity = entities.SingleOrDefault(i => i.Id == entityId); var category = entity.Categories.SingleOrDefault(i => i.Id == categoryId); var result = new QueryAppsResult(); var oracleConnectionString = _config.OracleConnectionString; using (var axOracleDb = new OracleConnection(oracleConnectionString)) { using (OracleCommand cmd = axOracleDb.CreateCommand()) { try { await axOracleDb.OpenAsync(); var resultDataSet = new DataSet(); cmd.CommandText = $"select DOCID, PAGES from historical where APPID = {category.Id}"; using (var dataAdapter = new OracleDataAdapter()) { dataAdapter.SelectCommand = cmd; dataAdapter.Fill(resultDataSet); } var table = resultDataSet.Tables[0]; if (table != null) { foreach (DataRow row in table.Rows) { var entry = new Entry { Id = int.TryParse(row.ItemArray.First().ToString(), out var id) ? id : 0, PageCount = int.TryParse(row.ItemArray.Last().ToString(), out var pageCount) ? pageCount : 0 }; result.Entries.Add(entry); } } } catch (Exception ex) { _logger.LogError(ex.Message); } } } return(result); }
private QueryAppsResult ExcludeNonPublicDocuments(QueryAppsResult result, Category category) { var columnIndex = Array.FindIndex(result.Columns, i => i == category.NotPublicFieldName); if (columnIndex > -1) { result.Entries = result.Entries.Where(i => // parse and filter out entries where Not Public equals true // default to not public for documents that do not have a value !(bool.TryParse(i.IndexValues[columnIndex], out var notPublic) ? notPublic : true) ).ToList(); } ; return(result); }