コード例 #1
0
        public async Task InitFromParameters(StartupParameters parameters)
        {
            this.startupParams = parameters;
            if (parameters.BuildMode)
            {
                Uri        passthroughUri = new Uri(parameters.PassthroughRoute);
                ServerData newServer      = new ServerData
                {
                    Name = parameters.ServerName,
                    Path = parameters.ServerRoute,
                    PassthroughOnFail = true,
                    PassthroughPath   = new Microsoft.AspNetCore.Builder.ProxyOptions {
                        Host = passthroughUri.Host,
                        Port = passthroughUri.IsDefaultPort ? "80" : passthroughUri.Port.ToString()
                    },
                    BuildMode = true
                };
                TryAddServer(newServer);
                await ActivateServer(newServer.Name, newServer);

                return;
            }

            if (parameters.ServerFiles.Any())
            {
                foreach (string serverFile in parameters.ServerFiles)
                {
                    var server = ServerData.LoadFrom(serverFile);
                    if (TryAddServer(server))
                    {
                        await ActivateServer(server.Name, server);
                    }
                }
            }
        }