示例#1
0
        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;
        }
示例#2
0
        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();
        }
示例#3
0
 private void OnModelCopyPaused(Object sender
                                , EventArgs <TimeSpan> e)
 {
     RemainingTimeCalculator.AddDelay(e.Value);
 }