Пример #1
0
        /// <summary>
        /// Reconfigures an existing database.
        /// </summary>
        /// <param name="name">The database name.</param>
        /// <param name="config">The database configuration information.</param>
        /// <returns></returns>
        public async Task DatabaseConfigAsync(string name, DatabaseConfiguration config)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(name));
            Covenant.Requires <ArgumentNullException>(config != null);

            GatewayException.ThrowOnError(await jsonClient.PutUnsafeAsync(GetUri(config.Name + "/_config"), config));
        }
Пример #2
0
        /// <summary>
        /// Purges all document tombstones from a database.
        /// </summary>
        /// <param name="database">The database name.</param>
        /// <returns>The tracking <see cref="Task"/>.</returns>
        public async Task DatabasePurgeAsync(string database)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(database));

            dynamic message = new ExpandoObject();

            message.docID = new string[] { "*" };

            GatewayException.ThrowOnError(await jsonClient.PostUnsafeAsync(GetUri(database + "/_purge"), message));
        }
Пример #3
0
        /// <summary>
        /// Takes a database back online after an optional delay.
        /// </summary>
        /// <param name="database">The database name.</param>
        /// <param name="delay">The optional delay.</param>
        /// <returns>The tracking <see cref="Task"/>.</returns>
        public async Task DatabaseOnline(string database, TimeSpan?delay = null)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(database));
            Covenant.Requires <ArgumentException>(!delay.HasValue || delay.Value >= TimeSpan.Zero);

            delay = delay ?? TimeSpan.Zero;

            dynamic message = new ExpandoObject();

            message.delay = (int)delay.Value.TotalSeconds;

            GatewayException.ThrowOnError(await jsonClient.PostUnsafeAsync(GetUri(database + "/_online"), message));
        }
Пример #4
0
        /// <summary>
        /// Removes a database.
        /// </summary>
        /// <param name="database">The database name.</param>
        /// <returns>The tracking <see cref="Task"/>.</returns>
        public async Task DatabaseRemoveAsync(string database)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(database));

            GatewayException.ThrowOnError(await jsonClient.DeleteUnsafeAsync(GetUri(database + "/")));
        }
Пример #5
0
        /// <summary>
        /// Creates a database.
        /// </summary>
        /// <param name="config">The database configuration information.</param>
        /// <returns>The tracking <see cref="Task"/>.</returns>
        public async Task DatabaseCreateAsync(DatabaseConfiguration config)
        {
            Covenant.Requires <ArgumentNullException>(config != null);

            GatewayException.ThrowOnError(await jsonClient.PutUnsafeAsync(GetUri(config.Name + "/"), config));
        }
Пример #6
0
        /// <summary>
        /// Takes a database offline.
        /// </summary>
        /// <param name="database">The database name.</param>
        /// <returns>The tracking <see cref="Task"/>.</returns>
        public async Task DatabaseOffline(string database)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(database));

            GatewayException.ThrowOnError(await jsonClient.PostUnsafeAsync(GetUri(database + "/_offline"), string.Empty));
        }