private void SingleTimer_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { SingleTimerLib.SingleTimer _t = (SingleTimerLib.SingleTimer)sender; if (sender == null) { return; } switch (e.PropertyName) { case nameof(SingleTimerLib.SingleTimer.RunningElapsedTime): ThreadSafeUpdateTimerElapsedTime(_t); DebugPrint(string.Format("From {1}: [{2}] Elapsed {0}", _t.RunningElapsedTime, "SingleTimer_PropertyChanged", e.PropertyName)); break; case nameof(SingleTimerLib.SingleTimer.RowIndex): break; case nameof(SingleTimerLib.SingleTimer.Name): DebugPrint(string.Format("{0} is a new name!", _t.Name)); Debug.Assert(TimerName2RowIndexDictionary.ContainsKey(_t.CanonicalName)); TimersList.Add(_t.CanonicalName, _t); ThreadSafeUpdateTimerNamee(_t); break; case nameof(SingleTimerLib.SingleTimer.TimerIsRunning): string message1 = "{0}: {1} is running! [{2}]"; string message2 = "{0}: {1} is stopped! [{2}]"; DebugPrint(string.Format(_t.TimerIsRunning ? message1 : message2, "SingleTimer_PropertyChanged", _t.Name, e.PropertyName)); break; default: break; } }
private void CloseOptionsWindow(Add addTimerWindow, bool fromDatacontext = false) { var dataContext = Internal.ChildWindow.GetDatacontext <ChildWindows.Timers.Add>(addTimerWindow.DataContext); if (dataContext?.IsCompleted() == true && fromDatacontext) { if (!dataContext.IsEditing) { var timer = new Core.Database.Storage.Timers { CreatedAt = DateTime.Now, Name = dataContext.Name.Replace(" ", ""), Text = dataContext.Text, Interval = dataContext.Interval, NextExecution = DateTime.Now.AddMinutes(dataContext.Interval) }; _handler.AddTimerToDatabase(timer); TimersList.Add(timer); addTimerWindow.Close(); // if editing (using the same view for add and edit) } else { _handler.EditTimer( name: dataContext.Name, text: dataContext.Text, interval: dataContext.Interval, id: Convert.ToInt32(dataContext.DatabaseID)); // refresh timer in timers list TimersList = new ObservableCollection <Core.Database.Storage.Timers>(_handler.GetTimers()); } addTimerWindow.Close(); } }