/// <summary> /// parsing from CommunicationProtocol to ServiceInfoEventArgs. /// </summary> public static ServiceInfoEventArgs Parse(CommunicationProtocol e) { CommandEnum ce = (CommandEnum)e.Command_Id; string[] args = e.Command_Args; if (args == null) { return(null); } ServiceInfoEventArgs siea = new ServiceInfoEventArgs(); if (ce == CommandEnum.GetConfigCommand) { ClientServerArgsParser.GetConfigCommand(siea, args); } else if (ce == CommandEnum.CloseHandlerCommand) { ClientServerArgsParser.CloseHandlerCommand(siea, args); } else if (ce == CommandEnum.GetLogCommand) { ClientServerArgsParser.GetLogCommand(siea, args); } return(siea); }
/// <summary> /// filling the RemovedHandlers property /// </summary> /// <param name="siea">ServiceInfoEventArgs object to fill</param> /// <param name="args">CommunicationProtocol arguments</param> private static void CloseHandlerCommand(ServiceInfoEventArgs siea, string[] args) { List <string> handlers = new List <string>(); foreach (string handler in args) { handlers.Add(handler); } siea.RemovedHandlers = handlers; }
/// <summary> /// filling the ConfigMap property /// </summary> /// <param name="siea">ServiceInfoEventArgs object to fill</param> /// <param name="args">CommunicationProtocol arguments</param> private static void GetConfigCommand(ServiceInfoEventArgs siea, string[] args) { int indx; Dictionary <string, string> d = new Dictionary <string, string>(); foreach (string str in args) { indx = str.IndexOf(' '); d.Add(str.Substring(0, indx), str.Substring(indx + 1)); } siea.ConfigMap = d; }
/// <summary> /// filling the LogsList property /// </summary> /// <param name="siea">ServiceInfoEventArgs object to fill</param> /// <param name="args">CommunicationProtocol arguments</param> private static void GetLogCommand(ServiceInfoEventArgs siea, string[] args) { List <Log> logs = new List <Log>(); foreach (string log in args) { int indx = log.IndexOf(' '); string[] subs = { log.Substring(0, indx), log.Substring(indx + 1) }; MessageTypeEnum mt; try { mt = (MessageTypeEnum)Enum.Parse(typeof(MessageTypeEnum), subs[0]); logs.Add(new Log(mt, subs[1])); } catch (Exception) { mt = MessageTypeEnum.INFO; logs.Add(new Log(mt, log)); } } logs.Reverse(); siea.LogsList = logs; }