コード例 #1
0
ファイル: ClientWindowsAuth2.cs プロジェクト: xinix00/ravendb
        protected override void ModifyStore(FilesStore store)
        {
            FactIfWindowsAuthenticationIsAvailable.LoadCredentials();
            ConfigurationHelper.ApplySettingsToConventions(store.Conventions);

            base.ModifyStore(store);
        }
コード例 #2
0
        private async Task VerifyDump(FilesStore store, string backupPath, Action <FilesStore> action)
        {
            try
            {
                store.DefaultFileSystem += "-Verify";
                await store.AsyncFilesCommands.Admin.EnsureFileSystemExistsAsync(store.DefaultFileSystem);

                bool incremental = false;
                var  directory   = new DirectoryInfo(backupPath);
                if (directory.Exists)
                {
                    incremental = true;
                }

                var dumper = new SmugglerFilesApi {
                    Options = { Incremental = incremental }
                };
                await dumper.ImportData(new SmugglerImportOptions <FilesConnectionStringOptions>
                {
                    FromFile = backupPath,
                    To       = new FilesConnectionStringOptions
                    {
                        Url = store.Url,
                        DefaultFileSystem = store.DefaultFileSystem,
                    }
                });

                action(store);
            }
            catch (Exception e)
            {
                throw e.SimplifyException();
            }
        }
コード例 #3
0
ファイル: OpeningSession.cs プロジェクト: stjordanis/docs-1
        public async Task Foo()
        {
            FilesStore store = null;

            #region open_session_2
            store.OpenAsyncSession(new OpenFilesSessionOptions()
            {
                FileSystem = store.DefaultFileSystem
            });
            #endregion

            string filesystem = null;

            #region open_session_3
            store.OpenAsyncSession(new OpenFilesSessionOptions()
            {
                FileSystem = filesystem
            });
            #endregion

            #region open_session_4
            using (IAsyncFilesSession session = store.OpenAsyncSession())
            {
                // code here
            }
            #endregion
        }
コード例 #4
0
        public override bool InitBackup()
        {
            parameters.ServerUrl = parameters.ServerUrl.TrimEnd('/');
            try //precaution - to show error properly just in case
            {
                var serverUri      = new Uri(parameters.ServerUrl);
                var serverHostname = serverUri.Scheme + Uri.SchemeDelimiter + serverUri.Host + ":" + serverUri.Port;

                store = new FilesStore {
                    Url = serverHostname, DefaultFileSystem = parameters.Filesystem, ApiKey = parameters.ApiKey, Credentials = parameters.Credentials
                };
                store.Initialize();
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc);
                try
                {
                    store.Dispose();
                }
                // ReSharper disable once EmptyGeneralCatchClause
                catch (Exception) { }
                return(false);
            }


            var backupRequest = new
            {
                BackupLocation = parameters.BackupPath.Replace("\\", "\\\\"),
            };


            var json = RavenJObject.FromObject(backupRequest).ToString();

            var url = "/admin/backup";

            if (parameters.Incremental)
            {
                url += "?incremental=true";
            }
            try
            {
                using (var req = CreateRequest("/fs/" + parameters.Filesystem + url, "POST"))
                {
                    req.WriteAsync(json).Wait();

                    Console.WriteLine("Sending json {0} to {1}", json, parameters.ServerUrl);

                    var response = req.ReadResponseJson();
                    Console.WriteLine(response);
                }
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc);
                return(false);
            }

            return(true);
        }
コード例 #5
0
        protected virtual FilesStore NewStore(int index = 0, bool fiddler = false, bool enableAuthentication = false, string apiKey = null,
                                              ICredentials credentials = null, string requestedStorage                  = null, [CallerMemberName] string fileSystemName = null,
                                              bool runInMemory         = true, Action <RavenConfiguration> customConfig = null)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

            var server = CreateServer(Ports[index],
                                      fileSystemName: fileSystemName,
                                      enableAuthentication: enableAuthentication,
                                      customConfig: customConfig,
                                      requestedStorage: requestedStorage,
                                      runInMemory: runInMemory);

            server.Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl);

            var store = new FilesStore
            {
                Url = server.Url,
                DefaultFileSystem = fileSystemName,
                Credentials       = credentials,
                ApiKey            = apiKey,
            };

            store.Initialize(true);

            this.filesStores.Add(store);

            return(store);
        }
コード例 #6
0
ファイル: FileStoreHelper.cs プロジェクト: rstonkus/ravendb
        internal static FilesStore CreateStore(FilesConnectionStringOptions options)
        {
            var credentials = options.Credentials as NetworkCredential;

            if (credentials == null)
            {
                credentials = CredentialCache.DefaultNetworkCredentials;
            }
            else if ((string.IsNullOrWhiteSpace(credentials.UserName) || string.IsNullOrWhiteSpace(credentials.Password)))
            {
                credentials = CredentialCache.DefaultNetworkCredentials;
            }

            var store = new FilesStore
            {
                Credentials       = credentials,
                ApiKey            = options.ApiKey,
                Url               = options.Url,
                DefaultFileSystem = options.DefaultFileSystem,
            };

            store.Initialize(false);

            return(store);
        }
コード例 #7
0
        public async Task Foo()
        {
            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    #region sorting_1
                    List <FileHeader> results = await session.Query()
                                                .OrderBy(x => x.Name)
                                                .ToListAsync();

                    #endregion
                }

                using (var session = store.OpenAsyncSession())
                {
                    #region sorting_2
                    List <FileHeader> results = await session.Query()
                                                .OrderByDescending("Owner")                                                 // order descending by "Owner" metadata
                                                .ToListAsync();

                    #endregion
                }
            }
        }
コード例 #8
0
        protected virtual IAsyncFilesCommands NewAsyncClient(int index = 0, bool fiddler = false, bool enableAuthentication = false, string apiKey = null,
                                                             ICredentials credentials = null, string requestedStorage = null, [CallerMemberName] string fileSystemName = null)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

            var server = CreateServer(Ports[index], fileSystemName: fileSystemName, enableAuthentication: enableAuthentication, requestedStorage: requestedStorage);

            server.Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl);

            var store = new FilesStore()
            {
                Url = server.Url,
                DefaultFileSystem = fileSystemName,
                Credentials       = credentials,
                ApiKey            = apiKey,
            };

            store.Initialize(true);

            this.filesStores.Add(store);

            var client = store.AsyncFilesCommands;

            asyncCommandClients.Add(client);

            return(client);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: marysam26/ravendb
        private static void RunRemoteFilesystemRestoreOperation(string backupLocation, string restoreLocation, string restoreFilesystemName, bool defrag, Uri uri, bool waitForRestore, int?timeout)
        {
            long operationId;

            using (var filesStore = new FilesStore
            {
                Url = uri.AbsoluteUri
            }.Initialize())
            {
                operationId = filesStore.AsyncFilesCommands.Admin.StartRestore(new FilesystemRestoreRequest
                {
                    BackupLocation      = backupLocation,
                    FilesystemLocation  = restoreLocation,
                    FilesystemName      = restoreFilesystemName,
                    Defrag              = defrag,
                    RestoreStartTimeout = timeout
                }).ResultUnwrap();
                Console.WriteLine("Started restore operation from {0} on {1} server.", backupLocation, uri.AbsoluteUri);
            }

            if (waitForRestore)
            {
                using (var sysDbStore = new DocumentStore
                {
                    Url = uri.AbsoluteUri
                }.Initialize())
                {
                    new Operation((AsyncServerClient)sysDbStore.AsyncDatabaseCommands, operationId).WaitForCompletion();
                    Console.WriteLine("Completed restore operation from {0} on {1} server.", backupLocation, uri.AbsoluteUri);
                }
            }
        }
コード例 #10
0
        protected virtual FilesStore NewStore(int index = 0, bool fiddler = false, bool enableAuthentication = false, string apiKey = null,
                                              ICredentials credentials = null, string requestedStorage                  = null, [CallerMemberName] string fileSystemName = null,
                                              bool runInMemory         = true, Action <RavenConfiguration> customConfig = null, string activeBundles                     = null, string connectionStringName = null)
        {
            fileSystemName = NormalizeFileSystemName(fileSystemName);

            var server = CreateServer(Ports[index],
                                      fileSystemName: fileSystemName,
                                      enableAuthentication: enableAuthentication,
                                      customConfig: customConfig,
                                      requestedStorage: requestedStorage,
                                      runInMemory: runInMemory,
                                      activeBundles: activeBundles);

            server.Url = GetServerUrl(fiddler, server.SystemDatabase.ServerUrl);

            var store = new FilesStore
            {
                Url = server.Url,
                DefaultFileSystem    = fileSystemName,
                Credentials          = credentials,
                ApiKey               = apiKey,
                ConnectionStringName = connectionStringName
            };

            store.AfterDispose += (sender, args) => server.Dispose();

            ModifyStore(store);

            store.Initialize(ensureFileSystemExists: true);

            this.filesStores.Add(store);

            return(store);
        }
コード例 #11
0
        internal static async Task <FilesStore> CreateStore(FilesConnectionStringOptions options)
        {
            var credentials = options.Credentials as NetworkCredential;

            if (credentials == null)
            {
                credentials = CredentialCache.DefaultNetworkCredentials;
            }
            else if ((String.IsNullOrWhiteSpace(credentials.UserName) || String.IsNullOrWhiteSpace(credentials.Password)))
            {
                credentials = CredentialCache.DefaultNetworkCredentials;
            }

            var store = new FilesStore
            {
                Credentials       = credentials,
                ApiKey            = options.ApiKey,
                Url               = options.Url,
                DefaultFileSystem = options.DefaultFileSystem,
            };

            store.Initialize();

            await ValidateThatServerIsUpAndFilesystemExists(options, store);

            return(store);
        }
コード例 #12
0
        public async Task InitializeAsync(FileSystemSmugglerOptions options, CancellationToken cancellationToken)
        {
            filesStore = FileStoreHelper.CreateStore(connectionOptions);

            await ServerValidation.ValidateThatServerIsUpAndFileSystemExists(connectionOptions, filesStore).ConfigureAwait(false);

            await ServerValidation.DetectServerSupportedFeatures(connectionOptions).ConfigureAwait(false); // TODO arek - merge those 2 methods into single one
        }
コード例 #13
0
        public async Task Foo()
        {
            using (var store = new FilesStore())
            {
                Stream content    = new MemoryStream();
                Stream newContent = new MemoryStream();

                #region optimistic_concurrency_1
                using (IAsyncFilesSession session = store.OpenAsyncSession())
                {
                    session.Advanced.UseOptimisticConcurrency = true;

                    session.RegisterUpload("ravendb.exe", content, new RavenJObject {
                        { "Copyright", "hibernatingrhinos.com" }
                    });

                    await session.SaveChangesAsync();

                    using (IAsyncFilesSession otherSession = store.OpenAsyncSession())
                    {
                        FileHeader fileInOtherSession = await otherSession.LoadFileAsync("ravendb.exe");

                        fileInOtherSession.Metadata["Copyright"] = "Hibernating Rhinos LTD";

                        await otherSession.SaveChangesAsync();
                    }

                    FileHeader file = await session.LoadFileAsync("ravendb.exe");

                    session.RegisterUpload(file, newContent);

                    await session.SaveChangesAsync();                     // will throw ConcurrencyException
                }
                #endregion

                #region optimistic_concurrency_2
                store.Conventions.DefaultUseOptimisticConcurrency = true;

                using (IAsyncFilesSession session = store.OpenAsyncSession())
                {
                    bool isSessionUsingOptimisticConcurrency = session.Advanced.UseOptimisticConcurrency;                     // will return true
                }
                #endregion

                #region optimistic_concurrency_3

                using (IAsyncFilesSession session = store.OpenAsyncSession())
                {
                    FileHeader file = await session.LoadFileAsync("git.exe");

                    session.RegisterFileDeletion(file, file.Etag);

                    await session.SaveChangesAsync();
                }
                #endregion
            }
        }
コード例 #14
0
        public async Task CanMigrateAttachmentsToFileSystemOnDifferentServer()
        {
            using (var store = NewRemoteDocumentStore())
                using (GetNewServer(8078))
                    using (var fsStore = new FilesStore()
                    {
                        Url = "http://localhost:8078",
                        DefaultFileSystem = "RavenDB_2115"
                    }.Initialize(true))
                    {
                        var random = new Random();
                        var bytes  = new byte[137];

                        random.NextBytes(bytes);

                        for (int i = 0; i < 10; i++)
                        {
                            store.DatabaseCommands.PutAttachment("files/" + i, null, new MemoryStream(bytes), new RavenJObject());
                        }

                        new CopyAttachmentsToFileSystem(new RavenConnectionStringOptions()
                        {
                            Url             = store.Url,
                            DefaultDatabase = store.DefaultDatabase
                        }, new RavenConnectionStringOptions()
                        {
                            Url = "http://localhost:8078",
                        }, "RavenDB_2115", false, 1).Execute();

                        Assert.Equal(10, store.DatabaseCommands.GetStatistics().CountOfAttachments);

                        var browseResult = await fsStore.AsyncFilesCommands.BrowseAsync();

                        Assert.Equal(10, browseResult.Length);

                        for (int i = 10; i < 20; i++)
                        {
                            store.DatabaseCommands.PutAttachment("files/" + i, null, new MemoryStream(bytes), new RavenJObject());
                        }

                        new CopyAttachmentsToFileSystem(new RavenConnectionStringOptions()
                        {
                            Url             = store.Url,
                            DefaultDatabase = store.DefaultDatabase
                        }, new RavenConnectionStringOptions()
                        {
                            Url = "http://localhost:8078",
                        }, "RavenDB_2115", true, 3).Execute();

                        Assert.Equal(0, store.DatabaseCommands.GetStatistics().CountOfAttachments);

                        browseResult = await fsStore.AsyncFilesCommands.BrowseAsync();

                        Assert.Equal(20, browseResult.Length);
                    }
        }
コード例 #15
0
		private static IFilesStore CreateStore()
		{
			IFilesStore fsStore = new FilesStore()
			{
				Url = "http://localhost:8080",
				DefaultFileSystem = "NorthwindFS"
			}.Initialize();

			return fsStore;
		}
コード例 #16
0
        private static IFilesStore CreateFilesStore()
        {
            IFilesStore store = new FilesStore()
            {
                Url = "http://localhost:8080",
                DefaultFileSystem = "TestFileSystem"
            }.Initialize();

            return(store);
        }
コード例 #17
0
        public RavenFsArtefactStorageProvider(RavenFsConfiguration configuration)
        {
            _filesStore = new FilesStore
            {
                Url = configuration.Url,
                DefaultFileSystem = configuration.FileSystem
            };

            _filesStore.Initialize();
        }
コード例 #18
0
        private static IFilesStore CreateStore()
        {
            IFilesStore fsStore = new FilesStore()
            {
                Url = "http://localhost:8080",
                DefaultFileSystem = "NorthwindFS"
            }.Initialize();

            return(fsStore);
        }
コード例 #19
0
		public async Task Foo()
		{
			using (var store = new FilesStore())
			{
				Stream content = new MemoryStream();
				Stream newContent = new MemoryStream();

				#region optimistic_concurrency_1
				using (IAsyncFilesSession session = store.OpenAsyncSession())
				{
					session.Advanced.UseOptimisticConcurrency = true;

					session.RegisterUpload("ravendb.exe", content, new RavenJObject { { "Copyright", "hibernatingrhinos.com"}});

					await session.SaveChangesAsync();

					using (IAsyncFilesSession otherSession = store.OpenAsyncSession())
					{
						FileHeader fileInOtherSession = await otherSession.LoadFileAsync("ravendb.exe");

						fileInOtherSession.Metadata["Copyright"] = "Hibernating Rhinos LTD";

						await otherSession.SaveChangesAsync();
					}

					FileHeader file = await session.LoadFileAsync("ravendb.exe");

					session.RegisterUpload(file, newContent);

					await session.SaveChangesAsync(); // will throw ConcurrencyException
				}
				#endregion

				#region optimistic_concurrency_2 
				store.Conventions.DefaultUseOptimisticConcurrency = true;

				using (IAsyncFilesSession session = store.OpenAsyncSession())
				{
					bool isSessionUsingOptimisticConcurrency = session.Advanced.UseOptimisticConcurrency; // will return true
				}
				#endregion

				#region optimistic_concurrency_3

				using (IAsyncFilesSession session = store.OpenAsyncSession())
				{
					FileHeader file = await session.LoadFileAsync("git.exe");

					session.RegisterFileDeletion(file, file.Etag);

					await session.SaveChangesAsync();
				}
				#endregion
			}
		} 
コード例 #20
0
ファイル: FileStoreFactory.cs プロジェクト: Morebis-GIT/CI
        public static IFilesStore CreateStore(string connectionString)
        {
            IFilesStore filesStore = new FilesStore()
            {
                Url = GetConnectionStringElements(connectionString)["Url"],
                DefaultFileSystem = GetConnectionStringElements(connectionString)["Database"]
            }.Initialize();

            ConfigureMaxRequest(filesStore);
            return(filesStore);
        }
コード例 #21
0
        private static IFilesStore CreateStore()
        {
            var filesStore = new FilesStore()
            {
                // Url = DocumentStoreHolder.ConnectionStringName,
                Url = DemoUtilities.ServerInfo,
                DefaultFileSystem = DocumentStoreHolder.NorthwindDatabaseName + "FS"
            }.Initialize();

            return(filesStore);
        }
コード例 #22
0
 public CreatingFilesStore()
 {
     #region create_fs_1
     using (IFilesStore fsStore = new FilesStore()
     {
         Url = "http://localhost:8080",
         DefaultFileSystem = "NorthwindFS"
     }.Initialize())
     {
     }
     #endregion
 }
コード例 #23
0
		public CreatingFilesStore()
		{
			#region create_fs_1
			using (IFilesStore fsStore = new FilesStore()
			{
				Url = "http://localhost:8080",
				DefaultFileSystem = "NorthwindFS"
			}.Initialize())
			{

			}
			#endregion
		}
コード例 #24
0
        public void CredentialsAreLoadedFromConnectionString()
        {
            using (var store = new FilesStore()
            {
                ConnectionStringName = "RavenFS"
            })
            {
                var credentials = (NetworkCredential)store.Credentials;

                Assert.Equal("local_user_test", credentials.UserName);
                Assert.Equal("local_user_test", credentials.Password);
                Assert.Equal(string.Empty, credentials.Domain);
            }
        }
コード例 #25
0
        public override async Task ImportData(SmugglerImportOptions <FilesConnectionStringOptions> importOptions)
        {
            if (importOptions.To == null)
            {
                throw new ArgumentNullException("importOptions");
            }

            using (primaryStore = await CreateStore(importOptions.To))
                using (documentStore = CreateDocumentStore(importOptions.To))
                {
                    Operations = new SmugglerRemoteFilesOperations(() => primaryStore, () => documentStore);

                    await base.ImportData(importOptions);
                }
        }
コード例 #26
0
        public override async Task <ExportFilesResult> ExportData(SmugglerExportOptions <FilesConnectionStringOptions> exportOptions)
        {
            if (exportOptions.From == null)
            {
                throw new ArgumentNullException("exportOptions");
            }

            using (primaryStore = await CreateStore(exportOptions.From))
                using (documentStore = CreateDocumentStore(exportOptions.From))
                {
                    Operations = new SmugglerRemoteFilesOperations(() => primaryStore, () => documentStore);

                    return(await base.ExportData(exportOptions));
                }
        }
コード例 #27
0
        public async Task CleanerStartupTaskShouldRemoveFileSystemsAfterIdleTimeout()
        {
            using (var server = GetNewServer())
                using (var store = NewRemoteDocumentStore(ravenDbServer: server))
                    using (var fStore = new FilesStore {
                        Url = store.Url, DefaultFileSystem = store.DefaultDatabase
                    }.Initialize())
                    {
                        await fStore.AsyncFilesCommands.Admin.CreateFileSystemAsync(MultiDatabase.CreateFileSystemDocument("Northwind"));

                        await fStore.AsyncFilesCommands.Admin.CreateFileSystemAsync(MultiDatabase.CreateFileSystemDocument("Northwind2"));

                        await fStore.AsyncFilesCommands.Admin.CreateFileSystemAsync(MultiDatabase.CreateFileSystemDocument("Northwind3"));

                        await fStore
                        .AsyncFilesCommands
                        .ForFileSystem("Northwind2")
                        .GetStatisticsAsync();

                        await fStore
                        .AsyncFilesCommands
                        .ForFileSystem("Northwind3")
                        .GetStatisticsAsync();

                        Assert.NotNull(store.DatabaseCommands.ForSystemDatabase().Get(Constants.FileSystem.Prefix + "Northwind"));
                        Assert.NotNull(store.DatabaseCommands.ForSystemDatabase().Get(Constants.FileSystem.Prefix + "Northwind2"));

                        server
                        .Options
                        .ServerStartupTasks
                        .OfType <LiveTestResourceCleanerStartupTask>().First()
                        .ExecuteCleanup(null);

                        Assert.Null(store.DatabaseCommands.ForSystemDatabase().Get(Constants.FileSystem.Prefix + "Northwind"));
                        Assert.NotNull(store.DatabaseCommands.ForSystemDatabase().Get(Constants.FileSystem.Prefix + "Northwind2"));

                        server.Server.Options.FileSystemLandlord.LastRecentlyUsed["Northwind2"] = DateTime.MinValue;

                        server
                        .Options
                        .ServerStartupTasks
                        .OfType <LiveTestResourceCleanerStartupTask>().First()
                        .ExecuteCleanup(null);

                        Assert.Null(store.DatabaseCommands.ForSystemDatabase().Get(Constants.FileSystem.Prefix + "Northwind2"));
                        Assert.NotNull(store.DatabaseCommands.ForSystemDatabase().Get(Constants.FileSystem.Prefix + "Northwind3"));
                    }
        }
コード例 #28
0
ファイル: MaxRequests.cs プロジェクト: stjordanis/docs-1
        public MaxRequests()
        {
            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    #region max_requests_1
                    session.Advanced.MaxNumberOfRequestsPerSession = 50;
                    #endregion
                }

                #region max_requests_2
                store.Conventions.MaxNumberOfRequestsPerSession = 100;
                #endregion
            }
        }
コード例 #29
0
ファイル: MaxRequests.cs プロジェクト: modulexcite/docs-8
		public MaxRequests()
		{
			using (var store = new FilesStore())
			{
				using (var session = store.OpenAsyncSession())
				{
					#region max_requests_1
					session.Advanced.MaxNumberOfRequestsPerSession = 50;
					#endregion
				}

				#region max_requests_2
				store.Conventions.MaxNumberOfRequestsPerSession = 100;
				#endregion
			}
		} 
コード例 #30
0
        protected async Task WaitForSynchronization(FilesStore store)
        {
            for (int i = 0; i < RetriesCount; i++)
            {
                using (var session = store.OpenAsyncSession())
                {
                    try
                    {
                        var file = await session.DownloadAsync(FileName);

                        break;
                    }
                    catch { }
                    Thread.Sleep(100);
                }
            }
        }
コード例 #31
0
        public async Task Foo()
        {
            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    #region paging_1
                    List <FileHeader> results = await session.Query()
                                                .Take(10)
                                                .ToListAsync();

                    #endregion
                }

                using (var session = store.OpenAsyncSession())
                {
                    #region paging_2
                    List <FileHeader> results = await session.Query()
                                                .Skip(10)
                                                .ToListAsync();

                    #endregion
                }

                using (var session = store.OpenAsyncSession())
                {
                    #region paging_3

                    const int         pageSize = 10;
                    int               start    = 0;
                    List <FileHeader> results;

                    do
                    {
                        results = await session.Query()
                                  .Skip(start)
                                  .Take(pageSize)
                                  .ToListAsync();

                        start += pageSize;
                    } while (results.Count == pageSize);
                    #endregion
                }
            }
        }
コード例 #32
0
        public async Task Foo()
        {
            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    #region statistics_1

                    FilesQueryStatistics stats;

                    List <FileHeader> results = await session.Query()
                                                .OrderBy(x => x.Name).Statistics(out stats)
                                                .ToListAsync();

                    #endregion
                }
            }
        }
コード例 #33
0
ファイル: Statistics.cs プロジェクト: ravendb/docs
        public async Task Foo()
        {

            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    #region statistics_1

                    FilesQueryStatistics stats;

                    List<FileHeader> results = await session.Query()
                                                .OrderBy(x => x.Name).Statistics(out stats)
                                                .ToListAsync();
                    #endregion
                }
            }
        }
コード例 #34
0
 public RavenDbServer(InMemoryRavenConfiguration configuration)
 {
     this.configuration = configuration;
     documentStore      = new DocumentStore
     {
         Conventions =
         {
             FailoverBehavior = FailoverBehavior.FailImmediately
         }
     };
     filesStore = new FilesStore
     {
         Conventions =
         {
             FailoverBehavior = FailoverBehavior.FailImmediately
         }
     };
 }
コード例 #35
0
ファイル: Paging.cs プロジェクト: modulexcite/docs-8
		public async Task Foo()
		{
			using (var store = new FilesStore())
			{
				using (var session = store.OpenAsyncSession())
				{
					#region paging_1
					List<FileHeader> results = await session.Query()
												.Take(10)
												.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region paging_2
					List<FileHeader> results = await session.Query()
												.Skip(10)
												.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region paging_3

					const int pageSize = 10;
					int start = 0;
					List<FileHeader> results;

					do
					{
						results = await session.Query()
												.Skip(start)
												.Take(pageSize)
												.ToListAsync();

						start += pageSize;

					} while (results.Count == pageSize);
					#endregion
				}
			}
		}
コード例 #36
0
        public override async Task Between(SmugglerBetweenOptions <FilesConnectionStringOptions> betweenOptions)
        {
            if (betweenOptions.From == null)
            {
                throw new ArgumentNullException("betweenOptions.From");
            }

            if (betweenOptions.To == null)
            {
                throw new ArgumentNullException("betweenOptions.To");
            }

            using (primaryStore = await CreateStore(betweenOptions.From))
                using (secondaryStore = await CreateStore(betweenOptions.To))
                    using (documentStore = CreateDocumentStore(betweenOptions.To))
                    {
                        Operations = new SmugglerBetweenRemoteFilesOperations(() => primaryStore, () => secondaryStore, () => documentStore);

                        await base.Between(betweenOptions);
                    }
        }
コード例 #37
0
ファイル: Streaming.cs プロジェクト: ravendb/docs
        public async Task Foo()
        {
            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    #region streaming_2
                    var allFilesMatchingCriteria = new List<FileHeader>();

                    var query = session.Query().WhereStartsWith("Name","Fa" );

                    using (var reader = await session.Advanced.StreamQueryAsync(query))
                    {
                        while (await reader.MoveNextAsync())
                        {
                            allFilesMatchingCriteria.Add(reader.Current);
                        }
                    }
                    #endregion
                }
            }
        }
コード例 #38
0
ファイル: Sorting.cs プロジェクト: modulexcite/docs-8
		public async Task Foo()
		{
			using (var store = new FilesStore())
			{
				using (var session = store.OpenAsyncSession())
				{
					#region sorting_1
					List<FileHeader> results = await session.Query()
												.OrderBy(x => x.Name)
												.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region sorting_2
					List<FileHeader> results = await session.Query()
												.OrderByDescending("Owner") // order descending by "Owner" metadata 
												.ToListAsync();
					#endregion
				}
			}
		}
コード例 #39
0
ファイル: StreamingFiles.cs プロジェクト: ravendb/docs
        public async Task Foo()
        {
            using (var store = new FilesStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    Etag fromEtag = Etag.Empty;

                    #region streaming_files_2
                    var allFilesMatchingCriteria = new List<FileHeader>();

                    using (var reader = await session.Advanced.StreamFileHeadersAsync(fromEtag: fromEtag, pageSize: 10))
                    {
                        while (await reader.MoveNextAsync())
                        {
                            allFilesMatchingCriteria.Add(reader.Current);
                        }
                    }

                    #endregion
                }
            }
        }
コード例 #40
0
ファイル: Encryption.cs プロジェクト: modulexcite/docs-8
		public Encryption()
		{

			using (var store = new FilesStore())
			{
				#region encryption_1
				store
					.AsyncFilesCommands
					.Admin
					.CreateFileSystemAsync(
						new FileSystemDocument
						{
							Id = "EncryptedFS",
							// Other configuration options omitted for simplicity
							Settings =
							{
								// ...
								{
									"Raven/ActiveBundles", "Encryption"
								},
								{
									"Raven/Encryption/Algorithm",
									"System.Security.Cryptography.DESCryptoServiceProvider, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
								}
							},
							SecuredSettings =
							{
								// ...
								{
									"Raven/Encryption/Key", "<key_here>"
								}
							}
						});

				#endregion
			}
		}
コード例 #41
0
ファイル: Filtering.cs プロジェクト: modulexcite/docs-8
		public async Task Foo()
		{
			using (var store = new FilesStore())
			{
				using (var session = store.OpenAsyncSession())
				{
					#region filtering_1
					List<FileHeader> results = await session.Query()
						.Where("__fileName:readme* AND Copyright:HR")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_2
					List<FileHeader> results = await session.Query()
						.WhereBetween(x => x.TotalSize, 1024 * 1024, 5 * 1024 * 1024) // size has to be > 1KB but < 5KB
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_3
					List<FileHeader> results = await session.Query()
						.WhereBetweenOrEqual("NumberOfDownloads", 5, 10)
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_4
					List<FileHeader> results = await session.Query()
						.WhereEndsWith(x => x.Name, ".txt")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_5
					List<FileHeader> results = await session.Query()
						.WhereEquals("Copyright", "HR")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					Stream stream = null;

					#region filtering_6

					session.RegisterUpload("test.file", stream);
					session.RegisterUpload("test.fil", stream);
					session.RegisterUpload("test.fi", stream);
					session.RegisterUpload("test.f", stream);

					await session.SaveChangesAsync();

					List<FileHeader> results = await session.Query()
						.WhereGreaterThan(x => x.Name, "test.fi") // will return 'test.fil' and 'test.file'
						.ToListAsync();

					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_7
					List<FileHeader> results = await session.Query()
						.WhereGreaterThanOrEqual("Download-Ratio", 7.3)
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_8
					List<FileHeader> results = await session.Query()
						.WhereIn(x => x.Name, new[] { "readme.txt", "help.doc" })
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_9
					List<FileHeader> results = await session.Query()
						.WhereLessThan(x => x.TotalSize, 1024)
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_10
					List<FileHeader> results = await session.Query()
						.WhereLessThanOrEqual("Downloaded", 5)
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_11
					List<FileHeader> results = await session.Query()
						.WhereStartsWith(x => x.FullPath, "/movies/ravenfs")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					Stream content = null;

					#region filtering_12
					session.RegisterUpload("git.bin", content, new RavenJObject()
					{
						{"Attributes", new RavenJArray(new object[]{ "r", "w" }) }
					});

					session.RegisterUpload("svn.bin", content, new RavenJObject()
					{
						{"Attributes", new RavenJArray(new object[]{ "w", "x" }) }
					});

					await session.SaveChangesAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_13
					List<FileHeader> results = await session.Query()
						.ContainsAll("Attributes", new[] { "r", "w" }) // will return git.bin
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_14
					List<FileHeader> results = await session.Query()
						.ContainsAny("Attributes", new[] { "r", "x" }) // will return git.bin and svn.bin
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_15
					List<FileHeader> results = await session.Query()
						.WhereStartsWith(x => x.Name, "readme")
						.WhereEquals("Copyright", "HR")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_16
					List<FileHeader> results = await session.Query()
						.WhereStartsWith(x => x.Name, "readme")
						.AndAlso()
						.WhereEquals("Copyright", "HR")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_17
					List<FileHeader> results = await session.Query()
						.WhereIn(x => x.Name, new[] { "help.txt", "documentation.doc" })
						.OrElse()
						.WhereStartsWith(x => x.Name, "readme")
						.ToListAsync();
					#endregion
				}

				using (var session = store.OpenAsyncSession())
				{
					#region filtering_18
					List<FileHeader> results = await session.Query()
						.OnDirectory("/documents/wallpapers", recursive: true)
						.WhereEndsWith(x => x.Name, "1920x1080.jpg")
						.ToListAsync();
					#endregion
				}
			}
			
		}