コード例 #1
0
        public List<CardCriterion> GetAll()
        {
            var Ds = new DataSet(); //dummy var to not blow the method
            DataRowCollection rows = Ds.Tables[0].Rows;

            //Map all Database Rows To DataModels. Add each Model to Dict.
            List<CardCriterion> cardCriteria = new List<CardCriterion>(rows.Count);

            #region Linq

            //cardCriteria.AddRange(from DataRow row in Ds.Tables[0].Rows
            //    select row.ItemArray
            //    into values
            //    let textExtractor = new TextExtractor()
            //    select
            //        new CardCriterion()
            //        {
            //            CardId = Convert.ToInt16(values[0]),
            //            Territory = Convert.ToString(values[1]),
            //            CardKind = Convert.ToString(values[2]),
            //            CardAdoptionKindSubject = Convert.ToString(values[3]),
            //            CardAdoptionSubject = Convert.ToString(values[4]),
            //            CardName = Convert.ToString(values[5]),
            //            CardEdition = textExtractor.Extract((byte[]) values[6]).Text,
            //            ContentMetadataDict = textExtractor.Extract((byte[]) values[6]).Metadata,
            //            ContentType = textExtractor.Extract((byte[]) values[6]).ContentType
            //        });

            #endregion

            foreach (DataRow row in rows)
            {
                var criterion = new CardCriterion();
                object[] values = row.ItemArray;
                var textExtractionResult = new TextExtractor().Extract((byte[]) values[7]);

                criterion.EditionId = Convert.ToUInt32(values[0]);
                criterion.Territory = Convert.ToString(values[1]);
                criterion.CardKind = Convert.ToString(values[2]);
                criterion.CardAdoptionKindSubject = Convert.ToString(values[3]);
                criterion.CardAdoptionSubject = Convert.ToString(values[4]);
                criterion.CardName = Convert.ToString(values[5]);
                criterion.CardAdoptionDate = Convert.ToDateTime(values[6]);
                criterion.CardEdition = textExtractionResult.Text;
                criterion.ContentMetadataDict = textExtractionResult.Metadata;
                criterion.CardAdoptionNumber = Convert.ToString(values[8]);

                cardCriteria.Add(criterion);

                Function(1, rows.Count);
                //http://stackoverflow.com/questions/6471378/implementing-a-progress-bar-to-show-work-being-done

            }
            return cardCriteria;
            //http://codereview.stackexchange.com/questions/30714/faster-way-to-convert-datatable-to-list-of-class
        }
コード例 #2
0
        public List <CardCriterion> GetAll()
        {
            var Ds = new DataSet(); //dummy var to not blow the method
            DataRowCollection rows = Ds.Tables[0].Rows;

            //Map all Database Rows To DataModels. Add each Model to Dict.
            List <CardCriterion> cardCriteria = new List <CardCriterion>(rows.Count);

            #region Linq

            //cardCriteria.AddRange(from DataRow row in Ds.Tables[0].Rows
            //    select row.ItemArray
            //    into values
            //    let textExtractor = new TextExtractor()
            //    select
            //        new CardCriterion()
            //        {
            //            CardId = Convert.ToInt16(values[0]),
            //            Territory = Convert.ToString(values[1]),
            //            CardKind = Convert.ToString(values[2]),
            //            CardAdoptionKindSubject = Convert.ToString(values[3]),
            //            CardAdoptionSubject = Convert.ToString(values[4]),
            //            CardName = Convert.ToString(values[5]),
            //            CardEdition = textExtractor.Extract((byte[]) values[6]).Text,
            //            ContentMetadataDict = textExtractor.Extract((byte[]) values[6]).Metadata,
            //            ContentType = textExtractor.Extract((byte[]) values[6]).ContentType
            //        });

            #endregion

            foreach (DataRow row in rows)
            {
                var      criterion            = new CardCriterion();
                object[] values               = row.ItemArray;
                var      textExtractionResult = new TextExtractor().Extract((byte[])values[7]);

                criterion.EditionId = Convert.ToUInt32(values[0]);
                criterion.Territory = Convert.ToString(values[1]);
                criterion.CardKind  = Convert.ToString(values[2]);
                criterion.CardAdoptionKindSubject = Convert.ToString(values[3]);
                criterion.CardAdoptionSubject     = Convert.ToString(values[4]);
                criterion.CardName            = Convert.ToString(values[5]);
                criterion.CardAdoptionDate    = Convert.ToDateTime(values[6]);
                criterion.CardEdition         = textExtractionResult.Text;
                criterion.ContentMetadataDict = textExtractionResult.Metadata;
                criterion.CardAdoptionNumber  = Convert.ToString(values[8]);

                cardCriteria.Add(criterion);

                Function(1, rows.Count);
                //http://stackoverflow.com/questions/6471378/implementing-a-progress-bar-to-show-work-being-done
            }
            return(cardCriteria);
            //http://codereview.stackexchange.com/questions/30714/faster-way-to-convert-datatable-to-list-of-class
        }
コード例 #3
0
        private static void _addToLuceneIndex(CardCriterion cardCriterion, IndexWriter writer)
        {
            //Add Tikafields from CardCriteriaRepository maybe here later to avoid RAM-haevy traffic?
            // remove older index entry
            TermQuery searchQuery = new TermQuery(new Term("EditionId", Convert.ToString(cardCriterion.EditionId)));
            writer.DeleteDocuments(searchQuery);
            // add new index entry
            Document doc = new Document();
            // add lucene fields mapped to db fields
            doc.Add(new Field("EditionId", Convert.ToString(cardCriterion.EditionId), Field.Store.YES,
                Field.Index.NOT_ANALYZED));
            doc.Add(new Field("CardId", Convert.ToString(cardCriterion.CardId), Field.Store.YES,
                Field.Index.NOT_ANALYZED));
            //doc.Add(new NumericField("CardId").SetIntValue(cardCriterion.CardId));
            doc.Add(new Field("CardName", cardCriterion.CardName, Field.Store.YES, Field.Index.ANALYZED));
            //doc.Add(new Field("CardName", cardCriterion.CardName, Field.Store.NO,
            //    Field.Index.ANALYZED));
            doc.Add(new Field("CardKind", cardCriterion.CardKind, Field.Store.YES, Field.Index.NOT_ANALYZED));
            //Changed from analyzed
            doc.Add(new Field("FileExt", cardCriterion.FileExt, Field.Store.YES, Field.Index.NOT_ANALYZED));
            doc.Add(new Field("CardEdition", cardCriterion.CardEdition, Field.Store.YES, Field.Index.ANALYZED));
            doc.Add(new Field("CardAdoptionKindSubject", cardCriterion.CardAdoptionKindSubject, Field.Store.YES,
                Field.Index.NOT_ANALYZED));
            //Changed from analyzed
            doc.Add(new Field("CardAdoptionSubject", cardCriterion.CardAdoptionSubject, Field.Store.YES,
                Field.Index.NOT_ANALYZED));
            //Changed from analyzed
            doc.Add(new Field("Territory", cardCriterion.Territory, Field.Store.YES, Field.Index.NOT_ANALYZED));
            //doc.Add(new Field("CardEdition", cardCriterion.CardEdition, Field.Store.NO,
            //    Field.Index.ANALYZED));
            doc.Add(new Field("CardAdoptionNumber", cardCriterion.CardAdoptionNumber, Field.Store.YES,
                Field.Index.NOT_ANALYZED));
            doc.Add(new Field("CardAdoptionDate",
                DateTools.DateToString(cardCriterion.CardAdoptionDate, DateTools.Resolution.DAY), Field.Store.YES,
                Field.Index.NOT_ANALYZED));

            #region Index Metadata

            //doc.Add(new Field("ContentType", cardCriterion.ContentType, Field.Store.YES,
            //    Field.Index.ANALYZED)); No need to index contentype so far
            //foreach (var kvp in cardCriterion.ContentMetadataDict)
            //{
            //    doc.Add(new Field(kvp.Key, kvp.Value, Field.Store.YES, Field.Index.NOT_ANALYZED));
            //} //Add later if metadata indexing is needed

            #endregion

            // add entry to index
            writer.AddDocument(doc);
        }
コード例 #4
0
        private static CardCriterion _extractRowToCriterion(IDataRecord record)
        {
            CardCriterion criterion = new CardCriterion();
            var textExtractionResult = new TextExtractor().Extract((byte[]) record[5]);

            criterion.EditionId = Convert.ToUInt32(record[0]);
            criterion.CardId = Convert.ToUInt32(record[1]);
            criterion.Territory = Convert.ToString(record[2]);
            criterion.CardKind = Convert.ToString(record[3]);
            criterion.CardName = Convert.ToString(record[4]);
            criterion.CardEdition = textExtractionResult.Text;
            criterion.ContentMetadataDict = textExtractionResult.Metadata;
            criterion.FileExt = Convert.ToString(record[6]);
            criterion.CardAdoptionKindSubject = Convert.ToString(record[7]);
            criterion.CardAdoptionSubject = Convert.ToString(record[8]);
            criterion.CardAdoptionDate = Convert.ToDateTime(record[9]);
            criterion.CardAdoptionNumber = Convert.ToString(record[10]);

            return criterion;
        }
コード例 #5
0
 // add/update/clear search index data
 public static void AddUpdateLuceneIndex(CardCriterion cardCriterion)
 {
     AddUpdateLuceneIndex(new List<CardCriterion> {cardCriterion});
 }