예제 #1
0
 public ImportDatViewModel(ImportDat view, string datPath)
 {
     _view                             = view;
     CloseCommand                      = ReactiveCommand.Create(ExecuteCloseCommand);
     IndeterminateProgress             = true;
     ProgressVisible                   = false;
     ErrorVisible                      = false;
     _worker                           = new DatImporter(datPath, null);
     _worker.ErrorOccurred            += OnWorkerOnErrorOccurred;
     _worker.SetIndeterminateProgress += OnWorkerOnSetIndeterminateProgress;
     _worker.SetMessage               += OnWorkerOnSetMessage;
     _worker.SetProgress              += OnWorkerOnSetProgress;
     _worker.SetProgressBounds        += OnWorkerOnSetProgressBounds;
     _worker.WorkFinished             += OnWorkerOnWorkFinished;
 }
예제 #2
0
        public override IImporter BuildImporter()
        {
            DatImporter importer = new DatImporter(Delimiters.ToDelimiters());

            importer.Builder.HasHeader              = HasHeader;
            importer.Builder.KeyColumnName          = KeyColumnName;
            importer.Builder.ParentColumnName       = ParentColumnName;
            importer.Builder.ChildColumnName        = ChildColumnName;
            importer.Builder.ChildSeparator         = ChildColumnDelimiter;
            importer.Builder.RepresentativeBuilders = (LinkedFiles != null)
                ? LinkedFiles.Select(f => f.GetBuilder()).ToList()
                : null;
            importer.FolderPrependFields = FolderPrependFields;
            importer.FolderPrependLinks  = FolderPrependLinks;
            return(importer);
        }
예제 #3
0
        public void Importers_DatImporter_Test()
        {
            // arrange
            FileInfo                     infile        = new FileInfo(@"X:\VOL001\infile.lfp");
            Encoding                     encoding      = Encoding.GetEncoding(1252);
            Delimiters                   delimiters    = Delimiters.CONCORDANCE;
            bool                         hasHeader     = true;
            string                       keyColName    = "DOCID";
            string                       parentColName = "BEGATT";
            string                       childColName  = String.Empty;
            string                       childColDelim = ";";
            RepresentativeBuilder        repSetting    = new RepresentativeBuilder("NATIVE", Representative.FileType.Native);
            List <RepresentativeBuilder> reps          = new List <RepresentativeBuilder>();

            reps.Add(repSetting);
            var builder = new DatBuilder();

            builder.HasHeader              = hasHeader;
            builder.KeyColumnName          = keyColName;
            builder.ParentColumnName       = parentColName;
            builder.ChildColumnName        = childColName;
            builder.ChildSeparator         = childColDelim;
            builder.RepresentativeBuilders = reps;
            builder.PathPrefix             = infile.Directory.FullName;
            var mockParser = new Mock <DatParser>(MockBehavior.Strict);

            mockParser.Setup(p => p.Parse(It.IsAny <TextReader>())).Returns(records);
            mockParser.Setup(p => p.Parse(It.IsAny <FileInfo>(), It.IsAny <Encoding>())).Returns(records);
            importer         = new DatImporter(mockParser.Object);
            importer.Builder = builder;

            // act
            DocumentCollection docs = importer.Import(infile, encoding);


            // assert
            Assert.AreEqual(10, docs.Count);
            Assert.AreEqual(0, docs.ImageCount);
            Assert.AreEqual(0, docs.TextCount);
            Assert.AreEqual(1, docs.NativeCount);
            Assert.AreEqual(3, docs.ParentCount);
            Assert.AreEqual(5, docs.ChildCount);
            Assert.AreEqual(2, docs.StandAloneCount);
            Assert.AreEqual("DOC000001", docs[0].Metadata["DOCID"]);
        }