Example #1
0
 private void OnNotifySuccess(IServerItem item)
 {
     Debug.WriteLine("OnNotifySuccess ");
     //MainListData = data;
     foreach (var server in serverList)
     {
         server.NotifyComplete = null;
         server.NotifySuccess  = null;
         server.Cancel();
     }
     _serverModel.UpdateServerWithSuccessItem(item);
     _eventAggregator.Publish(new UserMessage(Messages.ReLogin, lastViewModel));
     serverList     = null;
     ServersToCheck = -1;
 }
Example #2
0
 private void OnNotifySuccess(IServerItem item)
 {
     Debug.WriteLine("OnNotifySuccess ");
     //MainListData = data;
     foreach (var server in serverList)
     {
         server.NotifyComplete = null;
         server.NotifySuccess = null;
         server.Cancel();
     }
     _serverModel.UpdateServerAddr(item.Addr);
     _eventAggregator.Publish(new UserMessage(Messages.ReLogin, lastViewModel));
     serverList = null;
     ServersToCheck = -1;
 }
Example #3
0
 private void OnNotifyComplete(IServerItem item)
 {
     item.NotifyComplete = null;
     item.NotifySuccess  = null;
     ServersToCheck--;
     Debug.WriteLine("OnNotifyComplete: " + item.Addr);
     if (item.UserException != null && closedServer == null)
     {
         lastException = item.UserException;
         if (item.UserException.ErrorType == UserErrorTypes.SiteClosed)
         {
             closedServer = item;
         }
     }
 }
Example #4
0
        public void UpdateServerWithSuccessItem(IServerItem item)
        {
            //Root/ServerList/Server addr=
            //var doc = XDocument.;
            var msg = this.Msg ?? "";

            var newItem = new XElement("Server");

            newItem.SetAttributeValue("addr", item.Addr);
            var doc = new XDocument(
                new XElement("Root",
                             new XElement("ServerList", newItem),
                             new XElement("Message", msg)));

            StorageHelper.WriteToLocalCache(ConfigFileName, doc.ToString());
            UpdateServerAddr(item.Addr);
        }
Example #5
0
        public void Open(IServerItem serverItem, IAddon[] addons, bool runAsAdmin = false)
        {
            string addonArgs = string.Empty;

            if (addons.Any())
            {
                addonArgs = $@" ""-mod={string.Join(";", addons.Select(i => i.CommandlinePath).ToArray())}""";
            }

            var serverArgs = serverItem != null
                ? string.Format(" -connect={0} -port={1}", serverItem.Host, serverItem.Port)
                : string.Empty;

            var path   = Settings.Default.ArmaPath;
            var psInfo = new ProcessStartInfo
            {
                FileName  = Path.Combine(path, "arma3battleye.exe"),
                Arguments = " 2 1 1 -exe Arma3_x64 -skipintro -noSplash -noPause -world=empty " + addonArgs + serverArgs,
                // -malloc=system
                WorkingDirectory = path,
                UseShellExecute  = true
            };

            if (runAsAdmin)
            {
                psInfo.Verb = "runsas";
            }

            try
            {
                var ps = Process.Start(psInfo);
                if (ps != null)
                {
                    ps.EnableRaisingEvents = true;
                    ps.Exited += ps_Exited;
                }
            }
            catch (Exception)
            {
                // ignored
            }
        }
Example #6
0
        public async void CheckServerStatus(S1NyanViewModelBase viewModel)
        {
            if (isCheckingStatus)
            {
                return;
            }
            lastViewModel = viewModel;
            lastException = null;
            closedServer  = null;
            Util.Indicator.SetText(S1UserException.CheckServerStatus);
            isCheckingStatus = true;

            await _serverModel.UpdateListFromRemote();

            serverList     = _serverModel.List;
            ServersToCheck = serverList.Count;
            foreach (var server in serverList)
            {
                server.NotifySuccess  = OnNotifySuccess;
                server.NotifyComplete = OnNotifyComplete;
                server.ParserFactory  = _dataService.ParserFactory;
                server.Check();
            }
        }
Example #7
0
 private void OnNotifyComplete(IServerItem item)
 {
     item.NotifyComplete = null;
     item.NotifySuccess = null;
     ServersToCheck--;
     Debug.WriteLine("OnNotifyComplete: " + item.Addr);
     if (item.UserException != null && closedServer == null)
     {
         lastException = item.UserException;
         if (item.UserException.ErrorType == UserErrorTypes.SiteClosed)
             closedServer = item;
     }
 }
Example #8
0
        internal async void CheckServerStatus(S1NyanViewModelBase viewModel)
        {
            if (isCheckingStatus) return;
            lastViewModel = viewModel;
            lastException = null;
            closedServer = null;
            Util.Indicator.SetText(S1UserException.CheckServerStatus);
            isCheckingStatus = true;

            await _serverModel.UpdateListFromRemote();
            serverList = _serverModel.List;
            ServersToCheck = serverList.Count;
            foreach (var server in serverList)
            {
                server.NotifySuccess = OnNotifySuccess;
                server.NotifyComplete = OnNotifyComplete;
                server.ParserFactory = _dataService.ParserFactory;
                server.Check();
            }
        }