Exemple #1
0
 public ServerConnectionLifetimeScope(ICliServer server, ILifetimeScope parentLifetimeScope)
 {
     this.server = server;
     this.parentLifetimeScope = parentLifetimeScope;
     server.Connected        += ServerOnConnected;
     server.Disconnected     += ServerOnDisconnected;
 }
Exemple #2
0
        protected override async Task <int> Execute(ICommandManager commandManager)
        {
            ExecutionContext context       = LifetimeScope.Resolve <ExecutionContext>();
            ContainerBuilder serverBuilder = new ContainerBuilder();

            serverBuilder.RegisterModule <NamedPipeServer.DiModule>();
            serverBuilder.RegisterInstance(new CommandLineLifetimeScope(LifetimeScope))
            .AsSelf();
            serverBuilder.RegisterInstance(LifetimeScope.Resolve <ILog>()).As <ILog>();
            using (IContainer serverHost = serverBuilder.Build())
                using (ManualResetEvent serverStoppedEvent = new ManualResetEvent(false))
                {
                    ICliServer server = serverHost.Resolve <ICliServer>();
                    server.Disconnected += ServerOnDisconnected;
                    context.WriteInformation(string.Format(CultureInfo.InvariantCulture, MessageResources.StartingServerMessage, ServerName));
                    bool result = await server.Start(ServerName, HeartbeatEnabled).ConfigureAwait(false);

                    if (!result)
                    {
                        return(-1);
                    }
                    context.WriteInformation(MessageResources.ServerStartedMessage);

                    serverStoppedEvent.WaitOne(-1, true);

                    void ServerOnDisconnected(object sender, EventArgs e)
                    {
                        server.Disconnected -= ServerOnDisconnected;
                        serverStoppedEvent.Set();
                    }
                }

            context.WriteInformation(MessageResources.ServerStopped);
            return(0);
        }
Exemple #3
0
 public CommandLineMediator(IMessageParser messageParser, ICommandLineFacade commandLine, ICliServer server, IMessageSender messageSender, ILog logger)
 {
     this.messageParser                   = messageParser;
     this.commandLine                     = commandLine;
     this.server                          = server;
     this.messageSender                   = messageSender;
     this.logger                          = logger;
     messageParser.CommandIssued         += MessageParserOnCommandIssued;
     messageParser.CommandCanceled       += MessageParserOnCommandCanceled;
     messageParser.SuicideIssued         += MessageParserOnSuicideIssued;
     messageParser.HandshakeCompleted    += MessageParserOnHandshakeCompleted;
     commandLine.MessageReceived         += CommandLineOnMessageReceived;
     commandLine.ProgressReceived        += CommandLineOnProgressReceived;
     commandLine.InfiniteProgressStarted += CommandLineOnInfiniteProgressStarted;
 }