public async Task HandleCreateCentralManagementServerRequest(CreateCentralManagementServerParams createCmsParams, RequestContext <ListRegisteredServersResult> requestContext) { Logger.Write(TraceEventType.Verbose, "HandleCreateCentralManagementServerRequest"); try { CmsTask = Task.Run(async() => { try { //Validate params and connect ServerConnection conn = await ValidateAndCreateConnection(createCmsParams.ConnectParams); // Get Current Reg Servers on CMS RegisteredServersStore store = new RegisteredServersStore(conn); ServerGroup parentGroup = store.DatabaseEngineServerGroup; ListRegisteredServersResult result = GetChildrenfromParentGroup(parentGroup); if (result != null) { await requestContext.SendResult(result); return; } } catch (Exception ex) { // Exception related to connection/creation will only be caught here. Note that the outer catch will not catch them await requestContext.SendError(ex); } }); } catch (Exception e) { // Exception related to run task will be captured here await requestContext.SendError(e); } }
private ListRegisteredServersResult GetChildrenfromParentGroup(ServerGroup parentGroup) { var servers = parentGroup.RegisteredServers; var groups = parentGroup.ServerGroups; // Convert to appropriate variables and return var serverResults = new List <RegisteredServerResult>(); foreach (var s in servers) { serverResults.Add(new RegisteredServerResult { Name = s.Name, ServerName = string.IsNullOrEmpty(s.ServerName) ? s.Name : s.ServerName, Description = s.Description, ConnectionDetails = ConnectionServiceInstance.ParseConnectionString(s.ConnectionString), RelativePath = s.KeyChain.Urn.SafeToString() }); } var groupsResults = new List <RegisteredServerGroup>(); foreach (var s in groups) { groupsResults.Add(new RegisteredServerGroup { Name = s.Name, Description = s.Description, RelativePath = s.KeyChain.Urn.SafeToString() }); } ListRegisteredServersResult result = new ListRegisteredServersResult() { RegisteredServersList = serverResults, RegisteredServerGroups = groupsResults }; return(result); }
public async Task HandleListRegisteredServersRequest(ListRegisteredServersParams listServerParams, RequestContext <ListRegisteredServersResult> requestContext) { Logger.Write(TraceEventType.Verbose, "HandleListRegisteredServersRequest"); try { CmsTask = Task.Run(async() => { try { //Validate and create connection ServerConnection serverConn = ValidateAndCreateConnection(listServerParams.ParentOwnerUri); if (serverConn != null) { // Get registered Servers RegisteredServersStore store = new RegisteredServersStore(serverConn); ServerGroup parentGroup = NavigateToServerGroup(store, listServerParams.RelativePath); ListRegisteredServersResult result = GetChildrenfromParentGroup(parentGroup); await requestContext.SendResult(result); } else { await requestContext.SendResult(null); } } catch (Exception e) { await requestContext.SendError(e); } }); } catch (Exception e) { await requestContext.SendError(e); } }