Beispiel #1
0
        public void ShouldFindDatabaseQuerierFromRealPath()
        {
            // Given the extension type loader is set to find SmoCollectionQuerier objects
            IMultiServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider();
            // When I request a database compatible querier
            SmoQuerier querier = serviceProvider.GetService <SmoQuerier>(q => q.SupportedObjectTypes.Contains(typeof(Database)));

            // Then I expect to get back the SqlDatabaseQuerier
            Assert.NotNull(querier);
            Assert.Equal(typeof(SqlDatabaseQuerier), querier.GetType());

            // And I expect the service provider to have been set by the extension code
            Assert.NotNull(querier.ServiceProvider);
        }
Beispiel #2
0
 /// <summary>
 /// As an <see cref="IComposableService"/>, this will be set whenever the service is initialized
 /// via an <see cref="IMultiServiceProvider"/>
 /// </summary>
 /// <param name="provider"></param>
 public override void SetServiceProvider(IMultiServiceProvider provider)
 {
     Validate.IsNotNull(nameof(provider), provider);
     serviceProvider   = provider;
     connectionService = provider.GetService <ConnectionService>();
     try
     {
         connectionService.RegisterConnectedQueue(connectionName, bindingQueue);
     }
     catch (Exception ex)
     {
         Logger.Write(LogLevel.Error, ex.Message);
     }
 }
Beispiel #3
0
        private SmoQuerier GetSmoQuerier(Type querierType)
        {
            // Given the extension type loader is set to find SmoCollectionQuerier objects
            IMultiServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider();
            // When I request a compatible querier
            SmoQuerier querier = serviceProvider.GetService <SmoQuerier>(q => q.SupportedObjectTypes.Contains(querierType));

            // Then I expect to get back the Querier
            Assert.NotNull(querier);

            // And I expect the service provider to have been set by the extension code
            Assert.NotNull(querier.ServiceProvider);

            return(querier);
        }
        /// <summary>
        /// Gets the <see cref="ObjectExplorerService"/> if available, by looking it up
        /// from the <see cref="ServiceProvider"/>
        /// </summary>
        /// <returns></returns>
        /// <exception cref="InvalidOperationException">
        /// Thrown if the <see cref="ServiceProvider"/> is not set or the <see cref="ObjectExplorerService"/>
        /// isn't available from that provider
        /// </exception>
        public ObjectExplorerService GetObjectExplorerService()
        {
            if (ServiceProvider == null)
            {
                throw new InvalidOperationException(SqlTools.Hosting.SR.ServiceProviderNotSet);
            }
            ObjectExplorerService service = ServiceProvider.GetService <ObjectExplorerService>();

            if (service == null)
            {
                throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture,
                                                                  SqlTools.Hosting.SR.ServiceNotFound, nameof(ObjectExplorerService)));
            }

            return(service);
        }
        public ServerNode(ConnectionCompleteParams connInfo, IMultiServiceProvider serviceProvider)
            : base()
        {
            Validate.IsNotNull(nameof(connInfo), connInfo);
            Validate.IsNotNull("connInfo.ConnectionSummary", connInfo.ConnectionSummary);
            Validate.IsNotNull(nameof(serviceProvider), serviceProvider);

            this.connectionSummary = connInfo.ConnectionSummary;
            this.serverInfo        = connInfo.ServerInfo;
            this.connectionUri     = connInfo.OwnerUri;
            this.sqlServerType     = ServerVersionHelper.CalculateServerType(this.serverInfo);

            this.connectionService = serviceProvider.GetService <ConnectionService>();

            this.context = new Lazy <SmoQueryContext>(() => CreateContext(serviceProvider));

            NodeValue    = connectionSummary.ServerName;
            IsAlwaysLeaf = false;
            NodeType     = NodeTypes.Server.ToString();
            NodeTypeId   = NodeTypes.Server;
            Label        = GetConnectionLabel();
        }
Beispiel #6
0
            public static ObjectExplorerSession CreateSession(ConnectionCompleteParams response, IMultiServiceProvider serviceProvider, ServerConnection serverConnection, bool isDefaultOrSystemDatabase)
            {
                ServerNode rootNode = new ServerNode(response, serviceProvider, serverConnection);
                var        session  = new ObjectExplorerSession(response.OwnerUri, rootNode, serviceProvider, serviceProvider.GetService <ConnectionService>());

                if (!isDefaultOrSystemDatabase)
                {
                    // Assuming the databases are in a folder under server node
                    DatabaseTreeNode databaseNode = new DatabaseTreeNode(rootNode, response.ConnectionSummary.DatabaseName);
                    session.Root = databaseNode;
                }

                return(session);
            }
Beispiel #7
0
            public static ObjectExplorerSession CreateSession(ConnectionCompleteParams response, IMultiServiceProvider serviceProvider, ServerConnection serverConnection)
            {
                ServerNode rootNode = new ServerNode(response, serviceProvider, serverConnection);

                return(new ObjectExplorerSession(response.OwnerUri, rootNode, serviceProvider, serviceProvider.GetService <ConnectionService>()));
            }
 /// <summary>
 /// As an <see cref="IComposableService"/>, this will be set whenever the service is initialized
 /// via an <see cref="IMultiServiceProvider"/>
 /// </summary>
 /// <param name="provider"></param>
 public override void SetServiceProvider(IMultiServiceProvider provider)
 {
     Validate.IsNotNull(nameof(provider), provider);
     serviceProvider   = provider;
     connectionService = provider.GetService <ConnectionService>();
 }