private void ConsumerInitializer_MessageLogged(object sender, LoggerEventsQueue e) { LogService.WriteLog(e.Message, e.TypeLevel, e.Exception); switch (e.Type) { case TypeEvent.Variable: _viewModel.TextVariabili += $"\n {e.Message}"; break; case TypeEvent.Messages: _viewModel.TextMessaggi += $"\n {e.Message}"; break; case TypeEvent.HistoryBarJobPiece: _viewModel.TextHistoryJobPieceBar += $"\n {e.Message}"; break; case TypeEvent.State: _viewModel.TextState += $"\n {e.Message}"; break; case TypeEvent.Info: _viewModel.TextInfo += $"\n {e.Message}"; break; case TypeEvent.Tool: _viewModel.TextTool += $"\n {e.Message}"; break; default: throw new ArgumentOutOfRangeException(); } if (e.TypeLevel == LogService.TypeLevel.Error || e.TypeLevel == LogService.TypeLevel.Fatal) { _viewModel.TextErrors += $"\n {e.Message} \n {e.Exception}"; } }
// .Net recommends - Event method should be protected, virtual, void and start with On<Eventname> protected virtual void OnMessageLogged(LoggerEventsQueue eventLog) { MessageLogged?.Invoke(this, eventLog); }
protected void WriteLog(object sender, LoggerEventsQueue eventLog) { OnMessageLogged(eventLog); // raise event }