public void queue_folder()
        {
            var sourceFolder = @"c:\Downloads\video\";
            var taskFolder   = @"c:\temp\dsqueue";
            var files        = Directory.GetFiles(sourceFolder, "*.*", SearchOption.AllDirectories);
            var docs         = new DocumentStoreServiceClient(new Uri("http://ds"), "docs");
//            var demo = new DocumentStoreServiceClient(new Uri("http://ds"), "demo");

            var counter = 1;

            Parallel.ForEach(files, file =>
            {
                var handle  = "import_" + counter++;
                var taskDoc = docs.CreateDocumentImportData(
                    Guid.NewGuid(),
                    file,
                    Path.GetFileName(file),
                    new DocumentHandle(handle)
                    );
                taskDoc.DeleteAfterImport = false;

                var docsFile = Path.Combine(taskFolder, "doc_" + handle + "_" + DateTime.Now.Ticks);
                docs.QueueDocumentImport(taskDoc, docsFile);

                //var taskDemo = demo.CreateDocumentImportData(
                //    Guid.NewGuid(),
                //    file,
                //    new DocumentHandle(handle)
                //);
                //taskDemo.DeleteAfterImport = false;
                //var demoFile = Path.Combine(taskFolder, "demo_" + handle + "_" + DateTime.Now.Ticks);
                //demo.QueueDocumentImport(taskDemo, demoFile);
            });
        }
Exemplo n.º 2
0
        public void SetUp()
        {
            var config = new DocumentStoreTestConfiguration(_engineVersion);

            MongoDbTestConnectionProvider.DropTestsTenant();
            config.SetTestAddress(TestConfig.TestHostServiceAddress);
            _documentStoreService = new DocumentStoreBootstrapper();
            _documentStoreService.Start(config);
            _documentStoreClient = new DocumentStoreServiceClient(
                TestConfig.ServerAddress,
                TestConfig.Tenant
                );
            _tenant = ContainerAccessor.Instance.Resolve <TenantManager>().GetTenant(new TenantId(TestConfig.Tenant));

            //Issue: https://github.com/ProximoSrl/Jarvis.DocumentStore/issues/26
            //you need to resolve the IReader that in turns resolves the ProjectionEngine, becauase if you
            //directly resolve the ITriggerProjectionsUpdate, projection engine will be resolved multiple times.
            _tenant.Container.Resolve <IReader <StreamReadModel, Int64> >();
            _projections = _tenant.Container.Resolve <ITriggerProjectionsUpdate>();

            _documentDescriptorCollection = MongoDbTestConnectionProvider.ReadModelDb.GetCollection <DocumentDescriptorReadModel>("rm.DocumentDescriptor");
            _documentCollection           = MongoDbTestConnectionProvider.ReadModelDb.GetCollection <DocumentReadModel>("rm.Document");
            _commitCollection             = MongoDbTestConnectionProvider.ReadModelDb.GetCollection <BsonDocument>("Commits");
            _blobStore = _tenant.Container.Resolve <IBlobStore>();

            MongoFlatMapper.EnableFlatMapping(true);
        }
        public void queue_folder()
        {
            var sourceFolder = @"c:\Downloads\video\";
            var taskFolder = @"c:\temp\dsqueue";
            var files = Directory.GetFiles(sourceFolder, "*.*", SearchOption.AllDirectories);
            var docs = new DocumentStoreServiceClient(new Uri("http://ds"), "docs");
//            var demo = new DocumentStoreServiceClient(new Uri("http://ds"), "demo");

            var counter = 1;
            Parallel.ForEach(files, file =>
            {
                var handle = "import_" + counter++;
                var taskDoc = docs.CreateDocumentImportData(
                    Guid.NewGuid(),
                    file,
                    Path.GetFileName(file),
                    new DocumentHandle(handle)
                );
                taskDoc.DeleteAfterImport = false;

                var docsFile = Path.Combine(taskFolder, "doc_" + handle + "_" + DateTime.Now.Ticks);
                docs.QueueDocumentImport(taskDoc, docsFile);

                //var taskDemo = demo.CreateDocumentImportData(
                //    Guid.NewGuid(),
                //    file,
                //    new DocumentHandle(handle)
                //);
                //taskDemo.DeleteAfterImport = false;
                //var demoFile = Path.Combine(taskFolder, "demo_" + handle + "_" + DateTime.Now.Ticks);
                //demo.QueueDocumentImport(taskDemo, demoFile);
            });
        }
        static int Run()
        {
            Console.WriteLine("------------------------------------------");
            Console.WriteLine("Running");
            Console.WriteLine("\tServer: {0}", _endPoint.AbsoluteUri);
            Console.WriteLine("\tFolder: {0}", _folder);
            Console.WriteLine("------------------------------------------");

            var client  = new DocumentStoreServiceClient(_endPoint);
            int counter = 1;

            Parallel.ForEach(Directory.GetFiles(_folder), file =>
            {
                Console.WriteLine("Processing file {0}", file);
                var id = Interlocked.Increment(ref counter);
                try
                {
                    client.UploadAsync(file, "File_" + id).Wait();
                }
                catch (AggregateException aex)
                {
                    foreach (var ex in aex.InnerExceptions)
                    {
                        Console.WriteLine("Error: {0}", ex.Message);
                    }
                }
            });

            Console.WriteLine("------------------------------------------");

            return(0);
        }
Exemplo n.º 5
0
        static int Run()
        {
            Console.WriteLine("------------------------------------------");
            Console.WriteLine("Running");
            Console.WriteLine("\tServer: {0}", _endPoint.AbsoluteUri);
            Console.WriteLine("\tFolder: {0}", _folder);
            Console.WriteLine("------------------------------------------");

            var client = new DocumentStoreServiceClient(_endPoint);
            int counter = 1;

            Parallel.ForEach(Directory.GetFiles(_folder), file =>
            {
                Console.WriteLine("Processing file {0}", file);
                var id = Interlocked.Increment(ref counter);
                try
                {
                    client.UploadAsync(file, "File_" + id).Wait();
                }
                catch (AggregateException aex)
                {
                    foreach(var ex in aex.InnerExceptions)
                        Console.WriteLine("Error: {0}", ex.Message);
                }
            });

            Console.WriteLine("------------------------------------------");

            return 0;
        }
Exemplo n.º 6
0
 public void OneTimeSetUp()
 {
     _docs = new DocumentStoreServiceClient(
         TestConfig.ServerAddress,
         TestConfig.DocsTenant
         );
 }
Exemplo n.º 7
0
        protected async Task <Boolean> AddFormatToDocumentFromFile(
            string tenantId,
            String jobId,
            Client.Model.DocumentFormat format,
            string pathToFile,
            IDictionary <string, object> customData)
        {
            DocumentStoreServiceClient       client = GetDocumentStoreClient(tenantId);
            AddFormatFromFileToDocumentModel model  = new AddFormatFromFileToDocumentModel
            {
                CreatedById = this.PipelineId,
                JobId       = jobId,
                QueueName   = this.QueueName,
                Format      = format,
                PathToFile  = pathToFile
            };

            var response = await client.AddFormatToDocument(model, customData).ConfigureAwait(false);

            if (Logger.IsInfoEnabled)
            {
                Logger.Info($"Job {this.GetType()} Added format {format} to handle with job id {jobId}");
            }

            return(response != null);
        }
Exemplo n.º 8
0
        protected Task <Stream> GetBlobFormatReader(
            String tenantId,
            String jobId)
        {
            DocumentStoreServiceClient client = GetDocumentStoreClient(tenantId);
            var reader = client.OpenBlobIdForRead(QueueName, jobId);

            return(reader.OpenStream());
        }
 private async Task <string> GetfileNameFromHandle(DocumentStoreServiceClient client, DocumentHandle handle)
 {
     try
     {
         return(await client.GetFileNameAsync(handle));
     }
     catch (Exception)
     {
         return(String.Empty);
     }
 }
        public void TestFixtureSetUp()
        {
            _docs = new DocumentStoreServiceClient(
                TestConfig.ServerAddress, 
                TestConfig.DocsTenant
            );

            _demo = new DocumentStoreServiceClient(
                TestConfig.ServerAddress, 
                TestConfig.DemoTenant
            );
        }
        public void TestFixtureSetUp()
        {
            _docs = new DocumentStoreServiceClient(
                TestConfig.ServerAddress,
                TestConfig.DocsTenant
                );

            _demo = new DocumentStoreServiceClient(
                TestConfig.ServerAddress,
                TestConfig.DemoTenant
                );
        }
        public void should_create_a_valid_document_import_data()
        {
            var client = new DocumentStoreServiceClient(new Uri("http://ds"), "test");

            var did = client.CreateDocumentImportData(TaskId, "c:\\temp\\a file.docx", "a file.docx", Doc);

            Assert.AreEqual("file:///c:/temp/a%20file.docx", did.Uri.AbsoluteUri);
            Assert.AreEqual("test", did.Tenant);
            Assert.AreEqual("a file.docx", did.FileName);
            Assert.AreEqual(Doc, did.Handle);
            Assert.IsFalse(did.DeleteAfterImport);
            Assert.AreEqual(DocumentStoreServiceClient.OriginalFormat, did.Format);
        }
        public void should_create_a_valid_document_import_data()
        {
            var client = new DocumentStoreServiceClient(new Uri("http://ds"), "test");

            var did = client.CreateDocumentImportData(TaskId, "c:\\temp\\a file.docx","a file.docx", Doc);

            Assert.AreEqual("file:///c:/temp/a%20file.docx", did.Uri.AbsoluteUri);
            Assert.AreEqual("test", did.Tenant);
            Assert.AreEqual("a file.docx", did.FileName);
            Assert.AreEqual(Doc, did.Handle);
            Assert.IsFalse(did.DeleteAfterImport);
            Assert.AreEqual(DocumentStoreServiceClient.OriginalFormat, did.Format);
        }
Exemplo n.º 14
0
        protected async Task <Boolean> AddAttachmentToHandle(
            string tenantId,
            String jobId,
            string pathToFile,
            String source,
            String relativePath,
            IDictionary <string, object> customData)
        {
            DocumentStoreServiceClient client = GetDocumentStoreClient(tenantId);

            var response = await client.UploadAttachmentAsync(pathToFile, this.QueueName, jobId, source, relativePath, customData).ConfigureAwait(false);

            return(response != null);
        }
        private static async Task <bool> InnerGetPdf(string workingFolder, DocumentStoreServiceClient client, List <FileToComposeData> files, string handle, DocumentHandle documentHandle, bool pdfExists)
        {
            var pdfData  = client.OpenRead(documentHandle, DocumentFormats.Pdf);
            var tempFile = Path.Combine(workingFolder, Guid.NewGuid() + ".pdf");

            using (var downloaded = new FileStream(tempFile, FileMode.OpenOrCreate, FileAccess.Write))
            {
                var stream = await pdfData.OpenStream();

                stream.CopyTo(downloaded);
            }
            files.Add(FileToComposeData.FromDownloadedPdf(tempFile, handle));
            pdfExists = true;
            return(pdfExists);
        }
        public void SetUp()
        {
            var config = new DocumentStoreTestConfiguration(_engineVersion);
            MongoDbTestConnectionProvider.DropTestsTenant();
            config.SetTestAddress(TestConfig.ServerAddress);
            _documentStoreService = new DocumentStoreBootstrapper();
            _documentStoreService.Start(config);
            _documentStoreClient = new DocumentStoreServiceClient(
                TestConfig.ServerAddress,
                TestConfig.Tenant
            );
            _tenant = ContainerAccessor.Instance.Resolve<TenantManager>().Current;
            _projections = _tenant.Container.Resolve<ITriggerProjectionsUpdate>();
            _documentDescriptorCollection = MongoDbTestConnectionProvider.ReadModelDb.GetCollection<DocumentDescriptorReadModel>("rm.DocumentDescriptor");
            _documentCollection = MongoDbTestConnectionProvider.ReadModelDb.GetCollection<DocumentReadModel>("rm.Document");
            _commitCollection = MongoDbTestConnectionProvider.ReadModelDb.GetCollection<BsonDocument>("Commits");
            _blobStore = _tenant.Container.Resolve<IBlobStore>();

            MongoFlatMapper.EnableFlatMapping(true);
        }
Exemplo n.º 17
0
        protected async Task <Boolean> AddFormatToDocumentFromObject(string tenantId,
                                                                     String queueName,
                                                                     String jobId,
                                                                     Client.Model.DocumentFormat format,
                                                                     Object obj,
                                                                     String originalFileName,
                                                                     IDictionary <string, object> customData)
        {
            DocumentStoreServiceClient         client = GetDocumentStoreClient(tenantId);
            AddFormatFromObjectToDocumentModel model  = new AddFormatFromObjectToDocumentModel
            {
                CreatedById   = this.PipelineId,
                JobId         = jobId,
                QueueName     = queueName,
                Format        = format,
                FileName      = originalFileName,
                StringContent = JsonConvert.SerializeObject(obj),
            };
            var response = await client.AddFormatToDocument(model, customData).ConfigureAwait(false);

            return(response != null);
        }
        public void should_serialize_document_import_data()
        {
            var fname = Path.Combine(TestConfig.TempFolder, "a_file_to_import");
            var client = new DocumentStoreServiceClient(new Uri("http://ds"), "test");
            var did = client.CreateDocumentImportData(TaskId, "c:\\temp\\a file.docx", "a file.docx", Doc);
            client.QueueDocumentImport(did, fname);

            Assert.IsTrue(File.Exists(fname + ".dsimport"));

            const string expected =
@"{
  ""TaskId"": ""9a29d730-f57a-41e4-92ba-55b7d99712a2"",
  ""Uri"": ""c:\\temp\\a file.docx"",
  ""FileName"": ""a file.docx"",
  ""Handle"": ""doc"",
  ""Format"": ""original"",
  ""Tenant"": ""test"",
  ""CustomData"": null,
  ""DeleteAfterImport"": false
}";

            Assert.AreEqual(expected, File.ReadAllText(fname + ".dsimport"));
        }
Exemplo n.º 19
0
        protected async Task <String> DownloadBlob(
            String tenantId,
            String jobId,
            String originalFileName,
            String workingFolder)
        {
            String fileName = Path.Combine(workingFolder, originalFileName);

            //TooLongNames should be truncated, tika, or other libraries are not able to access
            //too long file names. Max file name is 260, but some libraries or task can append some more char
            //ex tika.html
            fileName = SanitizeFileNameForLength(fileName);
            DocumentStoreServiceClient client = GetDocumentStoreClient(tenantId);
            var reader = client.OpenBlobIdForRead(this.QueueName, jobId);

            using (var downloaded = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write))
            {
                var stream = await reader.OpenStream().ConfigureAwait(false);

                stream.CopyTo(downloaded);
            }
            Logger.DebugFormat("Downloaded blob for job {0} for tenant {1} in local file {2}", jobId, tenantId, fileName);
            return(fileName);
        }
        public void should_serialize_document_import_data()
        {
            var fname  = Path.Combine(TestConfig.TempFolder, "a_file_to_import");
            var client = new DocumentStoreServiceClient(new Uri("http://ds"), "test");
            var did    = client.CreateDocumentImportData(TaskId, "c:\\temp\\a file.docx", "a file.docx", Doc);

            client.QueueDocumentImport(did, fname);

            Assert.IsTrue(File.Exists(fname + ".dsimport"));

            const string expected =
                @"{
  ""TaskId"": ""9a29d730-f57a-41e4-92ba-55b7d99712a2"",
  ""Uri"": ""c:\\temp\\a file.docx"",
  ""FileName"": ""a file.docx"",
  ""Handle"": ""doc"",
  ""Format"": ""original"",
  ""Tenant"": ""test"",
  ""CustomData"": null,
  ""DeleteAfterImport"": false
}";

            Assert.AreEqual(expected, File.ReadAllText(fname + ".dsimport"));
        }
 private async Task<string> GetfileNameFromHandle(DocumentStoreServiceClient client, DocumentHandle handle)
 {
     try
     {
         return await client.GetFileNameAsync(handle);
     }
     catch (Exception)
     {
         return String.Empty;
     }
 }