예제 #1
0
        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;
            }
        }
예제 #2
0
        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();
            }
        }