Пример #1
0
 internal MetadataProvider(
     IMetadataParser <TEntity> metadataParser,
     IEntityIdentifierConverter entityIdentifierConverter)
 {
     this.metadataParser            = metadataParser;
     this.entityIdentifierConverter = entityIdentifierConverter;
 }
Пример #2
0
        public static IMetadataParser CreateMetadata(ParserContext context)
        {
            object          obj    = CreateObject(context, typeof(IMetadataParser), "CreateMetadata");
            IMetadataParser parser = (IMetadataParser)obj;

            return(parser);
        }
Пример #3
0
        public List <Metadata> GetMetadatas(
            IMetadataParser parser)
        {
            List <Metadata> metadatas = new List <Metadata>();

            try
            {
                var remaining = new Queue <ShareDirectoryClient>();

                remaining.Enqueue(shareClient.GetDirectoryClient(this.path));
                while (remaining.Count > 0)
                {
                    ShareDirectoryClient dir = remaining.Dequeue();
                    foreach (ShareFileItem item in dir.GetFilesAndDirectories())
                    {
                        if (item.IsDirectory)
                        {
                            remaining.Enqueue(dir.GetSubdirectoryClient(item.Name));
                        }
                        else if (item.Name.Contains(MIDDEN_FILE_EXTENSION))
                        {
                            Console.WriteLine($"  In {dir.Uri.AbsolutePath} found {item.Name}");

                            ShareFileClient file = dir.GetFileClient(item.Name);

                            ShareFileDownloadInfo fileContents = file.Download();
                            string json;
                            using (MemoryStream ms = new MemoryStream())
                            {
                                fileContents.Content.CopyTo(ms);
                                json = Encoding.UTF8.GetString(ms.ToArray());
                            }

                            // Parse json string
                            Metadata metadata = parser.Parse(json);

                            // Sets the dataset path relative to the Uri and Path specified in constructor
                            var filePath =
                                Path.GetRelativePath(this.path, file.Path)
                                .Replace(MIDDEN_FILE_EXTENSION, "");

                            metadata.Dataset.DatasetPath = filePath;

                            metadatas.Add(metadata);
                        }
                    }
                }

                Console.WriteLine($"Found a total of {metadatas.Count} files");
            }
            catch (Exception e)
            {
                Console.WriteLine($"An error ocurred: {e}");
            }

            return(metadatas);
        }
Пример #4
0
        public void TestParseOgg()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetAudioPath("sample.ogg"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(15, x.Count);
        }
Пример #5
0
        public void TestParseMp3_Id3v1Only()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetAudioPath("sample_v1_only.mp3"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(11, x.Count);
        }
Пример #6
0
 internal Merger(
     IMetadataParser <TEntity> metadataParser,
     MergeStrategy strategy)
 {
     this.metadataParser = metadataParser;
     this.strategy       = strategy;
     this.propertyGroups =
         new Lazy <IEnumerable <PropertyGroup> >(this.CreatePropertyGroups);
 }
Пример #7
0
 public Handler(UnitOfWork unitOfWork, IMetadataParser metadataParser, string path)
 {
     this._unitOfWork        = unitOfWork;
     this._metadataParser    = metadataParser;
     this._notificationTimer = new NotificationTimer();
     this._path = path;
     _notificationTimer.CreateTimer(2000);
     _notificationTimer.TimerElapsed += NotificationTimerElapsed;
 }
Пример #8
0
        public void TestExcelFile()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetExcelPath("comments.xls"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(8, x.Count);
            Assert.AreEqual("Microsoft Excel", x.Get("ApplicationName").Value);
        }
Пример #9
0
        public void TestPowerPoint()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOLE2Path("Test_Humor-Generation.ppt"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(8, x.Count);
            Assert.AreEqual("Funny Factory", x.Get("Title").Value);
        }
Пример #10
0
        public void TestDocx()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOOXMLPath("MultipleCoreProperties.docx"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(12, x.Count);
            Assert.AreEqual("Format", x.Get("Title").Value);
            Assert.AreEqual("Microsoft Macintosh Word", x.Get("Application").Value);
        }
Пример #11
0
        public void TestPptx()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOOXMLPath("SampleShow.pptx"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(8, x.Count);
            Assert.AreEqual("SlideShow Sample", x.Get("Title").Value);
            Assert.AreEqual("Microsoft Office PowerPoint", x.Get("Application").Value);
        }
Пример #12
0
        public void TestXlsx()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOOXMLPath("sample.xlsx"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(4, x.Count);
            Assert.AreEqual("Microsoft Excel", x.Get("Application").Value);
            Assert.AreEqual("12.0000", x.Get("AppVersion").Value);
        }
Пример #13
0
        public void TestSolidWorksFile()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOLE2Path("TestSolidWorks.sldprt"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(10, x.Count);
            Assert.AreEqual("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", x.Get("ClassID").Value);
            Assert.AreEqual("scj", x.Get("LastAuthor").Value);
        }
Пример #14
0
        public void TestCorelDrawFile()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOLE2Path("TestCorel.shw"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(6, x.Count);
            Assert.AreEqual("thorsteb", x.Get("Author").Value);
            Assert.AreEqual("thorsteb", x.Get("LastAuthor").Value);
        }
Пример #15
0
        public void TestParseGifWithComment()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetImagePath("sample_gimp.gif"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(4, x.Count);
            Assert.AreEqual(37, x.Get("PhotoHeight").Value);
            Assert.AreEqual(12, x.Get("PhotoWidth").Value);
            Assert.AreEqual("Created with GIMP", x.Get("Comment").Value);
            Assert.AreEqual("Created with GIMP", x.Get("GifComment").Value);
        }
Пример #16
0
 internal ReferenceIdentifierResolver(
     IMetadataParser <TEntity> metadataParser,
     IContext context,
     IEntityIdentifierConverter entityIdentifierConverter,
     IMapper mapper,
     IMessageLogger messageLogger)
 {
     this.metadataParser            = metadataParser;
     this.context                   = context;
     this.entityIdentifierConverter = entityIdentifierConverter;
     this.mapper                = mapper;
     this.messageLogger         = messageLogger;
     this.compatibleEntityTypes =
         new Dictionary <Type, IEnumerable <IEntityType> >();
 }
 public TextExtractor(
     ILogger <TextExtractor> logger,
     IOptions <AppSetting> appSetting,
     IOptions <FolderConfig> folderConfig,
     IGoogleOCRService googleOCRService,
     IMetadataParser metadataParser,
     IServiceProvider service)
 {
     _logger           = logger;
     _appSetting       = appSetting.Value;
     _folderConfig     = folderConfig.Value;
     _services         = service;
     _googleOCRService = googleOCRService;
     _metadataParser   = metadataParser;
 }
Пример #18
0
        public void TestParseTiff()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetImagePath("sample_gimp.tiff"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(97, x.Count);
            Assert.AreEqual(10, x.Get("PhotoHeight").Value);
            Assert.AreEqual(10, x.Get("PhotoWidth").Value);
            Assert.AreEqual("Test", x.Get("Comment").Value);
            Assert.AreEqual("28/10", x.Get("FNumber").Value);
            Assert.AreEqual("0", x.Get("Rating").Value);
            Assert.AreEqual("+150", x.Get("Tint").Value);
            Assert.AreEqual("5", x.Get("Shadows").Value);
        }
        public List <Metadata> GetMetadatas(
            IMetadataParser parser)
        {
            List <Google.Apis.Drive.v3.Data.File> files = GetFiles(
                MIDDEN_FILE_EXTENSION,
                false,
                MIDDEN_FILE_EXTENSION);

            List <Metadata> metadatas = new List <Metadata>();

            foreach (var file in files)
            {
                string json;

                using (MemoryStream ms = new MemoryStream())
                {
                    var fileRequest = service.Files.Get(file.Id);
                    fileRequest.Download(ms);
                    json = Encoding.UTF8.GetString(ms.ToArray());
                }

                Metadata metadata;
                try
                {
                    metadata = parser.Parse(json);
                }
                catch // Probably not a good idea
                {
                    continue;
                }

                // Try to set the path
                try
                {
                    var filePath = this.AbsPath(file);

                    metadata.Dataset.DatasetPath =
                        filePath.Replace(MIDDEN_FILE_EXTENSION, "");
                }
                catch { } // Silent fail -- code smell

                metadatas.Add(metadata);
            }

            return(metadatas);
        }
Пример #20
0
        public RowParserFixture()
        {
            IMetadataParser metadataParser = Substitute.For <IMetadataParser>();

            //metadataParser.ParseToXmlElement(Arg.Any<Metadata>()).Returns(c =>
            //{
            //    var root = new XElement("MetaData");
            //    root.Add(new XElement("Dest", _destination));
            //    root.Add(new XElement("DateFrom", DateTime.Now.ToString("s")));
            //    root.Add(new XElement("DateTo", DateTime.Now.ToString("s")));
            //    root.Add(new XElement("GenerateDate", _generateDate));
            //    root.Add(new XElement("RowCount", 2));
            //    root.Add(new XElement("Source", "0003NPIK"));
            //    root.Add(new XElement("PackageId", _id));
            //    return root;
            //});
            metadataParser.ParseToXmlElement(Arg.Any <DestinationMetadata>()).Returns(c =>
            {
                var root = new XElement("MetaData");
                root.Add(new XElement("Dest", _destination));
                root.Add(new XElement("GenerateDate", _generateDate.ToString("s")));
                root.Add(new XElement("Source", "0003NPIK"));
                root.Add(new XElement("PackageId", _id));
                return(root);
            });
            metadataParser.ParseFromXElementToMetadata(Arg.Any <XElement>()).Returns(c =>
            {
                if (c == null || !c.Args().Any() || (c.ArgAt <XElement>(0) == null))
                {
                    throw new EmptyMetdaDataXmlProvieded();
                }
                Metadata metadata      = new Metadata();
                metadata.Destinations  = new[] { _destination };
                metadata.CorrelationId = _id;
                metadata.Source        = "0003NPIK";
                return(metadata);
            });
            metadataParser.ParseFromXElementToDestinationMetadata(Arg.Any <XElement>()).Returns(c =>
            {
                DestinationMetadata metadata = new DestinationMetadata();
                metadata.CorrelationId       = _id;
                metadata.Source = "0003NPIK";
                return(metadata);
            });
            _rowParser = new BiztalkRowParser(metadataParser);
        }
Пример #21
0
        public void TestWord()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetOLE2Path("TestEditTime.doc"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(18, x.Count);

            path    = Path.GetFullPath(TestDataSample.GetOLE2Path("TestChineseProperties.doc"));
            context = new ParserContext(path);
            parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            x       = parser.Parse();
            Assert.AreEqual(18, x.Count);
            Assert.AreEqual("雅虎網站分類", x.Get("Comments").Value);
            Assert.AreEqual("參考資料", x.Get("Title").Value);
        }
Пример #22
0
 internal DuplicationKeyRule(
     IContext context,
     ISafeMetadataProvider <TEntity> safeMetadataProvider,
     IMetadataParser <TEntity> metadataParser,
     ICache <TEntity> cache,
     IInitializer initializer)
 {
     this.safeMetadataProvider = safeMetadataProvider;
     this.metadataParser       = metadataParser;
     this.cache   = cache;
     this.indices = new IndexWrapper[0];
     if (this.IsEntityTypeSupported(context))
     {
         initializer.Register(
             new Initializer(this),
             message: Resources.IndexingCache);
     }
 }
Пример #23
0
        public void TestParseJpeg()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetImagePath("sample_sony1.jpg"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(12, x.Count);
            Assert.AreEqual(2592, x.Get("PhotoHeight").Value);
            Assert.AreEqual(95, x.Get("PhotoQuality").Value);
            Assert.AreEqual(3872, x.Get("PhotoWidth").Value);
            Assert.AreEqual("DSLR-A200", x.Get("Model").Value);
            Assert.AreEqual((uint)400, x.Get("ISOSpeedRatings").Value);
            Assert.AreEqual(5.6, x.Get("FNumber").Value);
            Assert.AreEqual((double)35, x.Get("FocalLength").Value);
            Assert.AreEqual((uint)52, x.Get("FocalLengthIn35mmFilm").Value);
            Assert.AreEqual(new DateTime(2009, 11, 21, 12, 39, 39), x.Get("DateTime").Value);
        }
Пример #24
0
        public void TestParseJpegWithXmp()
        {
            string          path    = Path.GetFullPath(TestDataSample.GetImagePath("sample_nikon1.jpg"));
            ParserContext   context = new ParserContext(path);
            IMetadataParser parser  = (IMetadataParser)ParserFactory.CreateMetadata(context);
            ToxyMetadata    x       = parser.Parse();

            Assert.AreEqual(17, x.Count);
            Assert.AreEqual(3008, x.Get("PhotoHeight").Value);
            Assert.AreEqual(96, x.Get("PhotoQuality").Value);
            Assert.AreEqual(2000, x.Get("PhotoWidth").Value);
            Assert.AreEqual("NIKON D70", x.Get("Model").Value);
            Assert.AreEqual("Kirche Sulzbach", x.Get("Keywords").Value);
            Assert.AreEqual("1", x.Get("Rating").Value);
            Assert.AreEqual("2009-08-04T20:42:36Z", x.Get("DateAcquired").Value);
            Assert.AreEqual("Microsoft Windows Photo Gallery 6.0.6001.18000", x.Get("Software").Value);
            Assert.AreEqual("Microsoft Windows Photo Gallery 6.0.6001.18000", x.Get("creatortool").Value);
        }
Пример #25
0
        public List <Metadata> GetMetadatas(
            IMetadataParser parser)
        {
            var files = GetFileNames(MIDDEN_FILE_EXTENSION);

            List <Metadata> metadatas = new List <Metadata>();

            foreach (var file in files)
            {
                string json = File.ReadAllText(file);

                Metadata metadata = parser.Parse(json);

                string relativePath = Path.GetRelativePath(this.rootDirectory, file);

                metadata.Dataset.DatasetPath = relativePath.Replace(MIDDEN_FILE_EXTENSION, "");

                metadatas.Add(metadata);
            }

            return(metadatas);
        }
Пример #26
0
        public List <Metadata> GetMetadatas(
            IMetadataParser parser)
        {
            List <string> fileNames = GetFileNames(MIDDEN_FILE_EXTENSION);

            List <Metadata> metadatas = new List <Metadata>();

            DataLakeFileSystemClient fileSystemClient =
                serviceClient.GetFileSystemClient(fileSystemName);

            foreach (var fileName in fileNames)
            {
                // Get file contents as json string
                DataLakeFileClient fileClient =
                    fileSystemClient.GetFileClient(fileName);

                Response <FileDownloadInfo> fileContents = fileClient.Read();

                string json;
                using (MemoryStream ms = new MemoryStream())
                {
                    fileContents.Value.Content.CopyTo(ms);
                    json = Encoding.UTF8.GetString(ms.ToArray());
                }

                // Parse json string and add relative path to Dataset
                Metadata metadata = parser.Parse(json);

                string filePath = fileClient.Path.Replace(MIDDEN_FILE_EXTENSION, "");
                metadata.Dataset.DatasetPath = filePath;

                metadatas.Add(metadata);
            }

            return(metadatas);
        }
Пример #27
0
 internal WhiteSpaceNullifier(IMetadataParser <TEntity> metadataParser)
 {
     this.metadataParser = metadataParser;
 }
Пример #28
0
 public IHandler GetIHandler(UnitOfWork unitOfWork, IMetadataParser metadataParser, string path)
 {
     return(new Handler(unitOfWork, metadataParser, path));
 }
Пример #29
0
 public MetadataReader(
     IMetadataParser parser)
 {
     this.parser = parser;
 }
Пример #30
0
 internal NewValuesOnlyMerger(IMetadataParser <TEntity> metadataParser)
     : base(metadataParser, MergeStrategy.NewValuesOnly)
 {
 }