Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }