// Main read messages method, as much of this is similar we have created a generic private method which all public methods call private string Read(enmReadType readType, string clientId, string sessionId, enmMessageFormat format, int maxNumber) { Log(clientId, sessionId, format, maxNumber); string formatted = ""; try { UserContainer user = _userProcessor.GetUser(clientId, sessionId, null); if (user == null) throw new InitException(); try { MessageList messages = null; switch (readType) { case enmReadType.ReadNext: messages = _messageProcessor.Read(enmReadDirection.Forward, clientId, sessionId, maxNumber); break; case enmReadType.ReadLast: messages = _messageProcessor.Read(enmReadDirection.Backward, clientId, sessionId, maxNumber); break; } FormatLibrary fl = new FormatLibrary(); formatted = fl.Serialize(messages, format); } catch (TrappedException ex) { Log(ex); _messageProcessor.Create(clientId, sessionId, Config.ClientId, enmMessageCategory.TrappedException, ex.Message, ex.MetaData); } } catch (InitException) { Log(); } catch (Exception ex) { Log(ex); _messageProcessor.Create(clientId, sessionId, Config.ClientId, enmMessageCategory.Exception, ex.Message); } return formatted; }
public MessageList DeSerialize(string data, enmMessageFormat format) { FormatLibrary fl = new FormatLibrary(); return fl.DeSerialize<MessageList>(data, format); }
// Get messages using session and also indicate how many messages you want to get public string ReadNext(string clientId, string sessionId, enmMessageFormat format, int maxNumber) { return Read(enmReadType.ReadNext, clientId, sessionId, format, maxNumber); }
private bool ProcessClientCommand(string command) { string[] parameters = SplitParameters(command); if (parameters.Length >= 1) { switch (parameters[0]) { case ".format.xml": _messageFormat = enmMessageFormat.Xml; break; case ".format.json": _messageFormat = enmMessageFormat.Json; break; case ".format.contract": _messageFormat = enmMessageFormat.Contract; break; case ".message": string retval = _messages.ReadNext(_clientId, _sessionId, _messageFormat, 0); MessageList ml = _manager.DeSerialize(retval, _messageFormat); txtMessages.AppendText(retval + "\r"); return true; case ".session": if (parameters.Length == 2) { _sessionId = parameters[1]; } else { txtMessages.AppendText(_sessionId + "\r"); } return true; case ".cls.monitor": txtMessages.Clear(); break; case ".cls.command": txtConsole.Clear(); break; case ".cls": txtMessages.Clear(); txtConsole.Clear(); break; case ".exit": this.Hide(); return true; default: txtConsole.AppendText("\n"); int firstCharPosition = txtConsole.SelectionStart; txtConsole.AppendText("Local command not known "); txtConsole.Select(firstCharPosition, 23); txtConsole.SelectionColor = Color.Blue; return true; } return true; } else { return true; } }