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();
        }
示例#2
0
        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);
            }
        }