private void Copy(CancellationToken cancellationToken) { RemainingTimeCalculator.Start(); OnModelProgressMaxChanged(this, EventArgs.Empty); OnModelProgressValueChanged(this, EventArgs.Empty); Model.SizeChanged += OnModelProgressMaxChanged; Model.ProgressChanged += OnModelProgressValueChanged; Model.CopyPaused += OnModelCopyPaused; TaskIsRunning = true; try { Model.Copy(TargetPath, SelectedOverwriteOption, cancellationToken); } catch (Exception ex) { UIServices.ShowMessageBox(ex.Message, "Error", Buttons.OK, Icon.Error); } TaskIsRunning = false; Model.CopyPaused -= OnModelCopyPaused; Model.ProgressChanged -= OnModelProgressValueChanged; Model.SizeChanged -= OnModelProgressMaxChanged; }
public MainViewModel(IMainModel model , IIOServices ioServices , IUIServices uiServices , IWindowFactory windowFactory) { Model = model; IOServices = ioServices; UIServices = uiServices; WindowFactory = windowFactory; m_TaskIsRunning = false; m_SelectedOverwriteOption = OverwriteOptions.First(); RemainingTimeCalculator = new RemainingTimeCalculator(); WindowsProgressBarHandler = new WindowsProgressBarHandler(); Synchronizer = new Synchronizer(Application.Current.Dispatcher); ReadLastRecentFile(); }
private void OnModelCopyPaused(Object sender , EventArgs <TimeSpan> e) { RemainingTimeCalculator.AddDelay(e.Value); }