private void ConversionProgressCallback(ProgressUpdate update)
        {
            lock (_progressLock)
            {
                CurrentApplicationState = ApplicationState.Converting;

                if (CurrentProgressUpdate.Equals(NoProgress))
                {
                    CurrentProgressUpdate = update;
                    RaisePropertyChanged("CurrentProgress");
                    RaisePropertyChanged("CurrentProgressTotal");
                    RaisePropertyChanged("OperationCanBeCancelled");
                }
                else if (update.Progress > CurrentProgressUpdate.Progress)
                {
                    CurrentProgressUpdate = update;
                    RaisePropertyChanged("CurrentProgress");
                }

                //Check if this is the last update (so we can change over to copy progress)
                if (CurrentProgressUpdate.Progress == CurrentProgressUpdate.Total)
                {
                    //time to switch over to copying, yo.  Reset progress to be nice.
                    CurrentProgressUpdate = NoProgress;
                }
            }
        }
        private void CopyingProgressCallback(ProgressUpdate update)
        {
            lock (_progressLock)
            {
                CurrentApplicationState = ApplicationState.Copying;

                if (CurrentProgressUpdate.Equals(NoProgress))
                {
                    CurrentProgressUpdate = update;
                    RaisePropertyChanged("CurrentProgress");
                    RaisePropertyChanged("CurrentProgressTotal");
                    RaisePropertyChanged("OperationCanBeCancelled");
                }
                else if (update.Progress > CurrentProgressUpdate.Progress)
                {
                    RaisePropertyChanged("CurrentProgress");
                    CurrentProgressUpdate = update;
                }
            }
        }