private void ProcessLoginMessageEvent(object sender, LoginMessageEventArgs e) { this.Dispatcher.BeginInvoke(new Action(() => { var msg = new StringBuilder(); switch (e.Message.MsgType) { case MessageTypeEnum.Refresh: { var respMsg = (RefreshMessage)e.Message; if (respMsg.State.Stream == StreamStateEnum.Open && respMsg.State.Data != DataStateEnum.Suspect) { msg.Append($"{e.TimeStamp} Data State:{respMsg.State.Data} Stream State:{respMsg.State.Stream} State Code:{respMsg.State.Code} Status Text:{respMsg.State.Text}"); LoginExpandBtn.IsExpanded = false; } } break; case MessageTypeEnum.Status: var status = (StatusMessage)e.Message; if (status.State.Stream == StreamStateEnum.Closed || status.State.Stream == StreamStateEnum.ClosedRecover) { msg.Append($"Disconnect {status.State.Text}"); IsConnected(false, false, "Connect"); } break; case MessageTypeEnum.Update: throw new NotImplementedException(); } var originalTitle = $"{_windowsName} Status::"; MrnViewerDesktop.Title = $"{originalTitle} {msg.ToString()}"; })); }
protected void RaiseLoginMessageEvent(DateTime timestamp, IMessage message) { var messageCallback = new LoginMessageEventArgs() { Message = message, TimeStamp = timestamp }; OnLoginMessage(messageCallback); }
protected virtual void OnLoginMessage(LoginMessageEventArgs e) { var handler = LoginMessageEvent; handler?.Invoke(this, e); }