private void Restore(object sender, DoWorkEventArgs args) { //TODO: add a Try-Catch here Schedule s = m_wrapper.DataConnection.GetObjectById <Schedule>(m_wrapper.ScheduleID); RestoreTask task = new RestoreTask(s, m_wrapper.FullRestorePath, m_wrapper.RestoreFilter, m_wrapper.RestoreTime); Dictionary <string, string> options = new Dictionary <string, string>(); string destination = task.GetConfiguration(options); if (options.ContainsKey("filter")) { options.Remove("filter"); } using (Library.Main.Interface i = new Duplicati.Library.Main.Interface(destination, options)) { i.OperationProgress += new Duplicati.Library.Main.OperationProgressEvent(i_OperationProgress); i.Restore(task.LocalPath.Split(System.IO.Path.PathSeparator)); } }
void i_OperationProgress(Duplicati.Library.Main.Interface caller, Duplicati.Library.Main.DuplicatiOperation operation, Duplicati.Library.Main.DuplicatiOperationMode specificmode, int progress, int subprogress, string message, string submessage) { m_waitdlg.SetTitle(message); m_waitdlg.SetProgress(progress); }