Example #1
0
        public async Task Foo()
        {
            IFilesStore store = null;

            #region session_usage_1
            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                using (Stream content = File.OpenRead(@"C:\intro.avi"))
                {
                    session.RegisterUpload("/movies/intro.avi", content);

                    await session.SaveChangesAsync();
                }
            }

            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                FileHeader file = await session.LoadFileAsync("/movies/intro.avi");

                using (Stream content = await session.DownloadAsync(file.FullPath))
                {
                    /* ... */
                }

                if (file.CreationDate < DateTime.Now.AddDays(-1))
                {
                    session.RegisterFileDeletion(file);
                }

                await session.SaveChangesAsync();
            }
            #endregion


            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                #region unit_of_work_1
                Assert.Same(await session.LoadFileAsync("/movies/intro.avi"), await session.LoadFileAsync("/movies/intro.avi"));
                #endregion
            }

            #region unit_of_work_2
            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                FileHeader file = await session.LoadFileAsync("/movies/intro.avi");

                file.Metadata.Add("Owner", "James");

                await session.SaveChangesAsync();                 // will sent the metadata update to the file system
            }
            #endregion
        }
Example #2
0
        public async Task Foo()
        {
            IFilesStore store = null;

            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                #region register_upload_3
                using (Stream content = File.OpenRead(@"C:\intro.avi"))
                {
                    session.RegisterUpload("/movies/intro.avi", content);

                    await session.SaveChangesAsync();
                }
                #endregion
            }

            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                #region register_upload_4
                session.RegisterUpload("random.bin", 128, stream =>
                {
                    var bytes = new byte[128];
                    new Random().NextBytes(bytes);

                    stream.Write(bytes, 0, 128);
                });

                await session.SaveChangesAsync();

                #endregion
            }

            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                #region register_upload_5
                FileHeader ravenFile = await session.LoadFileAsync("/movies/intro.avi");

                string localFile = @"C:\intro.avi";

                if (ravenFile == null || new FileInfo(localFile).LastWriteTime - ravenFile.LastModified > TimeSpan.FromHours(1))
                {
                    using (Stream content = File.OpenRead(localFile))
                    {
                        session.RegisterUpload(ravenFile, content);

                        await session.SaveChangesAsync();
                    }
                }
                #endregion
            }
        }
Example #3
0
        public async Task Foo()
        {
            IFilesStore store = null;

            #region versioning_1
            await store
            .AsyncFilesCommands
            .Configuration
            .SetKeyAsync(
                "Raven/Versioning/DefaultConfiguration",
                new FileVersioningConfiguration
            {
                Id           = "Raven/Versioning/DefaultConfiguration",
                MaxRevisions = 10
            });

            #endregion

            #region versioning_2
            await store
            .AsyncFilesCommands
            .Configuration
            .SetKeyAsync(
                "Raven/Versioning/documents/temp",
                new FileVersioningConfiguration
            {
                Id      = "Raven/Versioning/documents/temp",
                Exclude = true
            });

            #endregion

            #region versioning_3
            await store
            .AsyncFilesCommands
            .Configuration
            .SetKeyAsync(
                "Raven/Versioning/documents/temp/drafts",
                new FileVersioningConfiguration
            {
                Id           = "Raven/Versioning/documents/temp/drafts",
                Exclude      = false,
                MaxRevisions = 5
            });

            #endregion

            #region versioning_4

            using (var session = store.OpenAsyncSession())
            {
                FileHeader[] revisions = await session
                                         .GetRevisionsForAsync(
                    "/documents/temp/drafts/1.txt",
                    start : 0,
                    pageSize : 5);
            }

            #endregion
        }
Example #4
0
 private async Task InitializeRandomFile(IFilesStore store, string name, int size)
 {
     using (var session = store.OpenAsyncSession())
     {
         session.RegisterUpload(name, CreateRandomFileStream(size));
         await session.SaveChangesAsync();
     }
 }
Example #5
0
        public void UploadPreviewFile(PreviewFile previewFile, Stream previewFileStream)
        {
            if (previewFileStream == null)
            {
                return;
            }

            var metadata = new RavenJObject()
            {
                { "XG-File-Id", RavenJToken.FromObject(previewFile.Id) },
                { "XG-File-Name", RavenJToken.FromObject(previewFile.FileName) },
                { "XG-File-Extension", RavenJToken.FromObject(previewFile.FileExtension) },
                { "XG-Content-Type", RavenJToken.FromObject(previewFile.ContentType) },
                { "XG-Content-Length", RavenJToken.FromObject(previewFile.ContentLength) }
            };

            using (var session = _filesStore.OpenAsyncSession())
            {
                session.Commands.UploadAsync(previewFile.Id, previewFileStream, metadata).Wait();
            }
        }
 private async Task InitializeRandomFile(IFilesStore store, string name, int size)
 {
     using (var session = store.OpenAsyncSession())
     {
         session.RegisterUpload(name, CreateRandomFileStream(size));
         await session.SaveChangesAsync();
     }            
 }
Example #7
0
        public void SessionLifecycle()
        {
            var store = (FilesStore)filesStore;

            using (var session = filesStore.OpenAsyncSession())
            {
                Assert.NotNull(session.Advanced);
                Assert.True(session.Advanced.MaxNumberOfRequestsPerSession == 30);
                Assert.False(string.IsNullOrWhiteSpace(session.Advanced.StoreIdentifier));
                Assert.Equal(filesStore, session.Advanced.FilesStore);
                Assert.Equal(filesStore.Identifier, session.Advanced.StoreIdentifier.Split(';')[0]);
                Assert.Equal(store.DefaultFileSystem, session.Advanced.StoreIdentifier.Split(';')[1]);
            }

            store.Conventions.MaxNumberOfRequestsPerSession = 10;

            using (var session = filesStore.OpenAsyncSession())
            {
                Assert.True(session.Advanced.MaxNumberOfRequestsPerSession == 10);
            }
        }