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(); }