Exemple #1
0
 public async Task HandleAddRegisteredServerRequest(AddRegisteredServerParams cmsCreateParams, RequestContext <bool> requestContext)
 {
     Logger.Write(TraceEventType.Verbose, "HandleAddRegisteredServerRequest");
     try
     {
         CmsTask = Task.Run(async() =>
         {
             try
             {
                 ServerConnection serverConn = ValidateAndCreateConnection(cmsCreateParams.ParentOwnerUri);
                 if (serverConn != null)
                 {
                     // Get Current Reg Servers
                     RegisteredServersStore store       = new RegisteredServersStore(serverConn);
                     ServerGroup parentGroup            = NavigateToServerGroup(store, cmsCreateParams.RelativePath);
                     RegisteredServerCollection servers = parentGroup.RegisteredServers;
                     // Add the new server (intentionally not cheching existence to reuse the exception message)
                     RegisteredServer registeredServer = new RegisteredServer(parentGroup, cmsCreateParams.RegisteredServerName);
                     registeredServer.Description      = cmsCreateParams.RegisteredServerDescription;
                     registeredServer.ConnectionString = serverConn.ConnectionString;
                     registeredServer.ServerName       = cmsCreateParams.RegisteredServerConnectionDetails.ServerName;
                     registeredServer.Create();
                     await requestContext.SendResult(true);
                 }
                 else
                 {
                     await requestContext.SendResult(false);
                 }
             }
             catch (Exception e)
             {
                 await requestContext.SendError(e);
             }
         });
     }
     catch (Exception e)
     {
         await requestContext.SendError(e);
     }
 }
        private async void TestAddRemoveRegisteredServer()
        {
            string        name          = "TestAddRemoveRegisteredServer" + DateTime.Now.ToString();
            ConnectParams connectParams = await CreateAndConnectWithConnectParams();

            // Prepare for Add Reg Server
            var requestContext1 = new Mock <RequestContext <bool> >();

            requestContext1.Setup((RequestContext <bool> x) => x.SendResult(It.Is <bool>((result) => result == true))).Returns(Task.FromResult(new object()));

            AddRegisteredServerParams addRegServerParams = new AddRegisteredServerParams
            {
                RegisteredServerName        = name,
                RegisteredServerDescription = "My Registered Test Server",
                ParentOwnerUri = connectParams.OwnerUri,
                RelativePath   = "RegisteredServersStore/ServerGroup[@Name='DatabaseEngineServerGroup']" //Top level
            };

            // Prepare for list servers
            var requestContext2 = new Mock <RequestContext <ListRegisteredServersResult> >();

            requestContext2.Setup((RequestContext <ListRegisteredServersResult> x) => x.SendResult(It.Is <ListRegisteredServersResult>((listCmsServersResult) => listCmsServersResult.RegisteredServersList.Find(p => p.Name.Contains(name)) != null))).Returns(Task.FromResult(new object()));

            ListRegisteredServersParams listServersParams = new ListRegisteredServersParams
            {
                ParentOwnerUri = connectParams.OwnerUri,
                RelativePath   = "RegisteredServersStore/ServerGroup[@Name='DatabaseEngineServerGroup']"
            };

            // Prepare for remove Server
            var requestContext3 = new Mock <RequestContext <bool> >();

            requestContext1.Setup((RequestContext <bool> x) => x.SendResult(It.Is <bool>((result) => result == true))).Returns(Task.FromResult(new object()));

            RemoveRegisteredServerParams removeRegServerParams = new RemoveRegisteredServerParams
            {
                ParentOwnerUri       = connectParams.OwnerUri,
                RegisteredServerName = name,
                RelativePath         = string.Format("RegisteredServersStore/ServerGroup[@Name='DatabaseEngineServerGroup']/RegisteredServer[@Name='{0}']", name)
            };

            // Actual test after preparation start here
            CmsService cmsService = CmsService.Instance;

            // Add Reg Server
            await cmsService.HandleAddRegisteredServerRequest(addRegServerParams, requestContext1.Object);

            await cmsService.CmsTask;

            requestContext1.VerifyAll();

            // List to validate
            await cmsService.HandleListRegisteredServersRequest(listServersParams, requestContext2.Object);

            await cmsService.CmsTask;

            requestContext2.VerifyAll();

            // Clean up
            await cmsService.HandleRemoveRegisteredServerRequest(removeRegServerParams, requestContext3.Object);

            await cmsService.CmsTask;

            requestContext3.VerifyAll();
        }