public void Autosave(object sender, ElapsedEventArgs e) { Timer.Stop(); BackgroundTaskManager.Tasks.Add(BackupTask); new System.Threading.Thread(new System.Threading.ThreadStart(() => { IEnumerable <string> bks = FileHelpers.GetBackups(App.FilePath); string path; if (!bks.Any()) { int prefix = 0; path = FileHelpers.MakeBackupPath(App.FilePath); string fname = Path.GetFileName(path); string direc = Path.GetDirectoryName(path); while (File.Exists(path) && FileHelpers.ReadBackupPath(path) != App.FilePath) { path = Path.Combine(direc, $"{prefix}{fname}"); prefix++; } } else { path = bks.First(); } FileHelpers.WriteBackup(path); LastBackup = DateTime.Now.TimeOfDay; BackgroundTaskManager.Tasks.Remove(BackupTask); SaveStateChanged?.Invoke(); if (Unsaved) { Timer.Start(); } })).Start(); }
public void UpdateSave() { LastSave = DateTime.Now.TimeOfDay; Unsaved = false; SaveStateChanged?.Invoke(); Timer?.Stop(); FileHelpers.SetWindowHeaders(); }
public void Change() { if (!m_changed) { m_changed = true; SaveStateChanged.Execute(); } Modified.Execute(); }
public void Change() { if (!m_lastChanged) { m_lastChanged = m_changed(); SaveStateChanged.Execute(); } Modified.Execute(); }
private void SetUnsaved(object sender, NotifyCollectionChangedEventArgs e) { if (e != null && e.IsAddOrRemove() && ReferenceEquals(sender, AllData)) { if (e.NewItems != null) { foreach (object item in e.NewItems) { BaseDataClass obj = (BaseDataClass)item; int errs = obj.GetErrorCount(ErrorType.Error); NumErrors += errs; if (errs > 0) { NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj)); } errs = obj.GetErrorCount(ErrorType.Warning); NumWarnings += errs; if (errs > 0) { NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj)); } obj.ErrorStateChanged += ObjectErrorStateChanged; } } if (e.OldItems != null) { foreach (object item in e.OldItems) { BaseDataClass obj = (BaseDataClass)item; int errs = obj.GetErrorCount(ErrorType.Error); NumErrors -= errs; if (errs > 0) { NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj)); } errs = obj.GetErrorCount(ErrorType.Warning); NumWarnings -= errs; if (errs > 0) { NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj)); } obj.ErrorStateChanged -= ObjectErrorStateChanged; } } } if (!Unsaved) { Unsaved = true; SaveStateChanged?.Invoke(); Timer?.Start(); FileHelpers.SetWindowHeaders(); } }
protected override void Saved() { m_changed = false; SaveStateChanged.Execute(); }
protected override void Saved() { m_saved(); m_lastChanged = m_changed(); SaveStateChanged.Execute(); }