private void OnServerOffReceived(DataReceivedModel data) { var rg = new Regex(@"\r\[\s*(?<value>\w+)\s*\]\s*Stopping[^:]+:\s*csserver"); if (rg.IsMatch(data.Data)) { data.ServerStates = rg.Matches(data.Data) .Cast <Match>() .Select(m => new ServerStateModel { ParameterName = "ServerOFF", ParameterValue = m.Groups["value"].Value }).ToList(); } }
private static void MonitorStateServer(DataReceivedModel data) { var state = data.ServerStates?.FirstOrDefault(o => o.ParameterName.Equals("ServerOFF")); if (state != null) { //_server.DataReceived -= _server_DataReceived; Console.WriteLine($"Сервер {_connectparam.FamilyGame} остановлен."); _connectparam = null; _server = null; _isWriteCommand = true; WriteCommand(); } state = data.ServerStates?.FirstOrDefault(o => o.ParameterName.Equals("Console")); if (state != null && state.ParameterValue == "Ready") { _isConsoleOpen = true; } state = data.ServerStates?.FirstOrDefault(o => o.ParameterName.Equals("Status")); if (state != null && state.ParameterValue == "Ready") { //CloseConsole(); _isConsoleOpen = false; foreach (var el in data.ServerStates) { Console.WriteLine($"{el.ParameterName} : {el.ParameterValue}"); } Console.Write("|"); foreach (var head in data.TableInfo.Headers) { Console.Write($"{head}\t|"); } Console.Write('\n'); if (data.TableInfo.Values.Any()) { Console.Write("|"); } foreach (var value in data.TableInfo.Values) { Console.Write($"{value}\t|"); } Console.Write('\n'); WriteCommand(); } }
private static void _server_DataReceived(object sender, DataReceivedModel data) { Console.Write(data.Data); MonitorStateServer(data); }