Beispiel #1
0
 public ClientControl(string connectionID, CentralMessagingHub messageHub, MainCommandCenterController cCController)
 {
     InitializeComponent();
     DataContext       = this;
     ConnectionID      = connectionID;
     MessageHub        = messageHub;
     this.cCController = cCController;
 }
Beispiel #2
0
        public MainCommandCenterController(MainWindow mainWindow, int numClients, string signalRURL, string serverURL, string autoAssignArchive)
        {
            NumClients             = numClients;
            ServerURL              = serverURL;
            View                   = mainWindow;
            ArchiveRoot            = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\LoadInjectorCommandCentre";
            this.AutoAssignArchive = autoAssignArchive;

            int configHubPort    = int.Parse(View.SignalRPort);
            int configServerPort = int.Parse(View.ServerPort);
            int hubport          = Utils.GetAvailablePort(configHubPort);

            signalRURL = $"http://{View.SignalRIP}:{View.SignalRPort}/";
            int webport = Utils.GetAvailablePort(configServerPort);

            //MessageBox.Show($"Config {NumClients} {AutoAssignArchive} {hubport} {webport} ", "Debug", MessageBoxButton.OK, MessageBoxImage.Warning);

            //Debug.WriteLine($"Config {NumClients} {AutoAssignArchive} {hubport} {webport} ");

            ClientTabControl tabControl = new ClientTabControl("Summary", this)
            {
                IsSummary = true, ConnectionID = "summary"
            };

            clientTabControls.Add("summary", tabControl);
            View.AddClientTab(tabControl);

            if (AutoAssignArchive != null && AutoAssignArchive != "")
            {
                string[] a        = AutoAssignArchive.Split('\\');
                string   safeName = a[a.Length - 1];
                File.Copy(AutoAssignArchive, ArchiveRoot + "\\" + safeName, true);
                AutoAssignArchive = safeName;
            }
            else
            {
                AutoAssignArchive = null;
            }

            if (hubport != configHubPort)
            {
                MessageBox.Show($"Port {configHubPort} is unavailable. Using {hubport} instead", "Client Hub Port", MessageBoxButton.OK, MessageBoxImage.Warning);
                View.SignalRPort = hubport.ToString();
            }

            try {
                MessageHub = new CentralMessagingHub(this);
                string res = MessageHub.StartHub(signalRURL);
                if (res != null)
                {
                    MessageBox.Show(res);
                }
            } catch (Exception ex) {
                MessageBox.Show("Message HUB Start Error: " + ex.Message);
            }

            if (webport != configServerPort)
            {
                MessageBox.Show($"Port {configServerPort} is unavailable. Using {webport} instead", "Archive Server Port", MessageBoxButton.OK, MessageBoxImage.Warning);
                View.ServerPort = webport.ToString();
            }

            WebServerURL = $"http://{View.SignalRIP}:{View.ServerPort}/";
            WebServer    = new SimpleHTTPServer(ArchiveRoot, View.SignalRIP, View.ServerPort);

            StartClients(NumClients);
        }