public AnalyserViewModel(AnalyserProvider analyserProvider,
                                 MainBusyService busyService,
                                 IServiceFactory serviceFactory,
                                 IInterTabClient interTabClient,
                                 SettingsViewModel settingsViewModel,
                                 IEnumerable <IImportAssembly> importServices,
                                 IEnumerable <IExportAssembly> exportServices,
                                 AppLoggerService <AnalyserViewModel> logger,
                                 MainViewIdentifier mainViewIdentifier)
        {
            this.analyserProvider = analyserProvider;
            BusyService           = busyService;
            this.serviceFactory   = serviceFactory;
            this.interTabClient   = interTabClient;
            SettingsViewModel     = settingsViewModel;
            this.logger           = logger;
            this.exportServices   = exportServices.ToList();
            this.importServices   = importServices.ToList();

            Title      = $"Dependencies Viewer {typeof(AnalyserViewModel).Assembly.GetName().Version?.ToString(3)}";
            MainViewId = mainViewIdentifier.Id;

            SettingsCommand = new Command(() => IsSettingsOpen = true);
            CloseCommand    = new Command(() => Application.Current.Shutdown());
            AboutCommand    = new Command(async() => await OpenAboutAsync());

            OpenFileCommand   = new Command(async() => await BusyService.RunActionAsync(OpenFileAsync).ConfigureAwait(false), () => !BusyService.IsBusy);
            OnDragOverCommand = new Command <DragEventArgs>(OnDragOver);
            OnDropCommand     = new Command <DragEventArgs>(async(x) => await BusyService.RunActionAsync(async() => await OnDrop(x).ConfigureAwait(false)).ConfigureAwait(false), _ => !BusyService.IsBusy);

            OnDragEnterCommand = new Command <DragEventArgs>((x) => IsDragFile = true, CanDrag);
            OnDragLeaveCommand = new Command <DragEventArgs>((x) => IsDragFile = false, CanDrag);

            ExportCommands = GenerateExportCommand();
            ImportCommands = GenerateImportCommand();

            CloseResultCommand = new Command <AssemblyModel>(CloseResult);
        }
 public AnalyserSettingsViewModel(AnalyserProvider analyserProvider, IAnalyserSettingProvider settingProvider)
 {
     AnalyserProvider = analyserProvider;
     Settings         = settingProvider;
 }