public void AddNewLogEntry(object sender, NewLogEntryEventArgs e) { var logEntry = new LogEntry(e.LogEntry); if (Log.Count(l => l.Revision == logEntry.Revision) > 0) { SourceLogLogger.LogError($"Subscription \"{Name}\" already contains revision {logEntry.Revision}, date (ticks) {logEntry.CommittedDate.Ticks}"); } logEntry.GenerateFlowDocuments(); using (var db = SourceLogContextProvider()) { logEntry.LogSubscription = db.LogSubscriptions.Find(LogSubscriptionId); db.LogEntries.Add(logEntry); db.SaveChanges(); } logEntry.UnloadChangedFiles(); if (_uiThread != null) { _uiThread.Post(entry => { Log.Add((LogEntry)entry); NotifyPropertyChanged("Log"); var logEntryInfo = new NewLogEntryInfoEventHandlerArgs { LogSubscriptionName = Name, Author = ((LogEntry)entry).Author, Message = ((LogEntry)entry).Message }; NewLogEntry(this, logEntryInfo); }, logEntry); } }
void ViewModelNewLogEntry(object sender, NewLogEntryInfoEventHandlerArgs e) { var balloon = new NewLogEntryBalloon(e.LogSubscriptionName, e.Author, e.Message); NotifyIcon.ShowCustomBalloon(balloon, PopupAnimation.Fade, 5000); }