public IFCConvertViewModel(IDialogCoordinator iDialogCoordinator)
        {
            // Commands
            SourceLocationAccessCommand      = new SimpleDelegateCommand(AccessSourceLocation, () => true);
            DestinationLocationAccessCommand = new SimpleDelegateCommand(AccessDestinationLocation, () => true);
            ConvertCommand     = new SimpleDelegateCommand(ConvertFiles, () => true);
            RadioButtonCommand = new SimpleDelegateCommand(RadioButtonClick, () => true);

            // Services
            ioService            = new IOService();
            iFCConversionService = new IFCConversionService();
            IDialogCoordinator   = iDialogCoordinator;
            settingsService      = new SettingsService();

            // Assignments
            DestinationType = DestinationLocationType.Local;
            IsDestinationFilePickerVisible = true;
            IsAWSDetailsControlVisible     = false;

            // Subscribe to event handlers in the service layer
            iFCConversionService.ProcessingException += IFCProcessingException;
            iFCConversionService.TotalFiles          += IFCTotalFiles;
            iFCConversionService.RemainingFiles      += IFCRemainingFiles;
            iFCConversionService.RemainingModels     += IFCRemainingModels;
        }
        public void ConvertFilesTest()
        {
            IFCConversionService iFCConversionService = new IFCConversionService();
            string input  = "E://downloads//Source";
            string target = "E://downloads//res";

            Assert.IsTrue(iFCConversionService.ConvertFiles(input, target, DestinationLocationType.Local).Result == IFCConvertStatus.Done);
            input = "E://downloads//123";
            Assert.IsTrue(iFCConversionService.ConvertFiles(input, target, DestinationLocationType.Local).Result == IFCConvertStatus.Error);
            input = "E://downloads//res";
            Assert.IsTrue(iFCConversionService.ConvertFiles(input, target, DestinationLocationType.Local).Result == IFCConvertStatus.NoFiles);
        }