public FrontEnd()
        {
            InitializeComponent();
            ServerService.Logging.LogMessage += Logging_LogMessage;
            Helper.Logging.LogMessage        += Logging_LogMessage;

            Stats = new Statistics(false);

            ServerService.Helper.Settings.Instance.ConfigureStatistics(ref stats);
            notifyPropertyChanged("Stats");

            Infrastructure.Server.Instance.Statistics = Stats;

            Infrastructure.Server.Instance.GetLog = () =>
            {
                return(LogControl.Messages.ToList());
            };

            Infrastructure.Server.Instance.ClearLog = () =>
            {
                Dispatcher.Invoke(() =>
                {
                    LogControl.ClearLog();
                });
            };

            if (File.Exists(Dialogs.IPFilter.ListLocation))
            {
                AccessControl.Instance.RestoreList(Dialogs.IPFilter.ListLocation);
            }

            if (File.Exists(ServerService.Helper.Settings.Instance.AdditionalProcessesLocation))
            {
                ServerService.Helper.Settings.Instance.RestoreAdditionalProcceses(ServerService.Helper.Settings.Instance.AdditionalProcessesLocation);
            }

            if (!ServerService.Helper.UacHelper.IsProcessElevated && ServerService.Helper.UacHelper.IsUacEnabled)
            {
                Helper.Logging.OnLogMessage("The application is not running as administrator. Features like banning might not work.", MessageType.Warning);
            }
            else
            {
                Helper.Logging.OnLogMessage("The application is running as administrator. Keep in mind, that everything that is launched from here, will run as administrator as well.", MessageType.Info);
            }
#if DEBUG
            ToggleInterProcessCommunication_Click(null, null);
#endif

            if (Helper.Settings.Instance.AutostartCWSProtocol)
            {
                ToggleInterProcessCommunication_Click(null, null);
            }

            if (Helper.Settings.Instance.AutostartStatistics)
            {
                ToggleStatisticsButton_Click(null, null);
            }

            if (Helper.Settings.Instance.AutostartWatcher)
            {
                if (ServerService.Helper.Settings.Instance.Validates)
                {
                    ToggleWatcher_Click(null, null);
                }
                else
                {
                    Helper.Logging.OnLogMessage("Not all settings are set. Watcher not started.", MessageType.Warning);
                }
            }
        }