/// <summary>
            /// Releases the connection.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The response.</returns>
            private static ReleaseConnectionServiceResponse ReleaseConnection(ReleaseConnectionServiceRequest request)
            {
                SqliteDatabaseProvider databaseProvider = DatabaseConnectionManagementService.GetDatabaseProvider(request.RequestContext);
                bool released = databaseProvider.ReleaseConnection(request.ConnectionString);

                return(new ReleaseConnectionServiceResponse(released));
            }
            /// <summary>
            /// Releases connections associated with a connection string from underlying database provider.
            /// </summary>
            /// <param name="connectionString">Connection string to release.</param>
            /// <returns>True if the connections are released otherwise false.</returns>
            private bool ReleaseConnectionString(string connectionString)
            {
                TimeSpan timeout  = TimeSpan.FromMinutes(1);
                TimeSpan interval = TimeSpan.FromSeconds(10);
                DateTime started  = DateTime.UtcNow;
                bool     released;
                var      request = new ReleaseConnectionServiceRequest(connectionString);

                while (!(released = this.ReleaseConnection(request)))
                {
                    Task.Delay(interval).Wait();

                    if (started + timeout <= DateTime.UtcNow)
                    {
                        break;
                    }
                }

                return(released);
            }
 /// <summary>
 /// Releases the connection.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>True if the connections are released otherwise false.</returns>
 private bool ReleaseConnection(ReleaseConnectionServiceRequest request)
 {
     return(this.Context.Runtime.Execute <ReleaseConnectionServiceResponse>(request, this.Context).Released);
 }