private async void TestAddCMS() { string name = "TestAddCMS" + DateTime.Now.ToString(); ConnectParams connectParams = CreateConnectParams(); // Prepare for list servers (may or may not have servers but will have listCmsServersResult) var requestContext = new Mock <RequestContext <ListRegisteredServersResult> >(); requestContext.Setup((RequestContext <ListRegisteredServersResult> x) => x.SendResult(It.Is <ListRegisteredServersResult>((listCmsServersResult) => listCmsServersResult.RegisteredServersList != null))).Returns(Task.FromResult(new object())); CreateCentralManagementServerParams connectToCMS = new CreateCentralManagementServerParams { RegisteredServerName = name, RegisteredServerDescription = "My Registered Test Server", ConnectParams = connectParams }; // Actual test after preparation start here CmsService cmsService = CmsService.Instance; // Connect to CMS await cmsService.HandleCreateCentralManagementServerRequest(connectToCMS, requestContext.Object); await cmsService.CmsTask; requestContext.VerifyAll(); }
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); } }