/// <summary>
 /// Initializes the commands and sets <see cref="CredentialTokens"/> to an empty collection.
 /// The ViewModel must be activated before use.
 /// </summary>
 /// <param name="accessList">A list used to look up candidates to get their underlying files.</param>
 /// <param name="exportService">Used to export stored files.</param>
 /// <param name="proxyProvider">Provider to use for accessing stored databases.</param>
 /// <param name="deletePrompter">Service to use for prompting user consent/understanding.</param>
 /// <param name="updatePrompter">Service to use for prompting user consent/understanding.</param>
 /// <param name="fileService">Service to use for accessing the filesystem.</param>
 public CachedFilesViewModel(
     IDatabaseAccessList accessList,
     IFileExportService exportService,
     IFileProxyProvider proxyProvider,
     IUserPromptingService deletePrompter,
     IUserPromptingService updatePrompter,
     IFileAccessService fileService
     ) : base(accessList, proxyProvider, exportService, deletePrompter, updatePrompter, fileService)
 {
     this.accessList       = accessList;
     this.proxyProvider    = proxyProvider;
     this.deleteAllCommand = new AsyncActionCommand(
         async() =>
     {
         if (await this.proxyProvider.TryDeleteAllProxiesAsync()
             .ConfigureAwait(false)
             )
         {
             ClearAllFiles();
         }
         else
         {
             // If clearing wasn't successful we might need to add back some
             // files.
             await ResyncFiles();
         }
     }
         );
 }
 public ProductService(IProductRepository productRepository,
                       IFileSystem fileSystem,
                       IFileExportService fileExportService,
                       IHttpContextAccessor httpContextAccessor,
                       IMemoryCache cache)
 {
     _productRepository   = productRepository;
     _fileSystem          = fileSystem;
     _fileExportService   = fileExportService;
     _httpContextAccessor = httpContextAccessor;
     _cache = cache;
 }
Exemple #3
0
 /// <summary>
 /// Initializes the ViewModel with the <see cref="IStorageItemAccessList"/> provided.
 /// </summary>
 /// <param name="accessList">The access list used to populate the RecentDatabases collection.</param>
 /// <param name="motdProvider">Used to provide the message-of-the-day.</param>
 /// <param name="proxyProvider">Used to generate database proxy files in the roaming directory.</param>
 /// <param name="exportService">Used to export copies of cached files.</param>
 /// <param name="deletePrompter">Used to prompt the user for consent/understanding.</param>
 /// <param name="updatePrompter">Used to prompt the user for consent/understanding.</param>
 /// <param name="fileService">Used to access the filesystem.</param>
 public DashboardViewModel(
     IDatabaseAccessList accessList,
     IMotdProvider motdProvider,
     IFileProxyProvider proxyProvider,
     IFileExportService exportService,
     IUserPromptingService deletePrompter,
     IUserPromptingService updatePrompter,
     IFileAccessService fileService
     ) : base(accessList, proxyProvider, exportService, deletePrompter, updatePrompter, fileService)
 {
     this.motdProvider  = motdProvider ?? throw new ArgumentNullException(nameof(motdProvider));
     this.proxyProvider = proxyProvider ?? throw new ArgumentNullException(nameof(proxyProvider));
 }
 public CachedFilesViewModelFactory(
     IDatabaseAccessList accessList,
     IFileExportService exportService,
     IFileProxyProvider proxyProvider,
     IUserPromptingService deletePrompter,
     IUserPromptingService updatePrompter,
     IFileAccessService fileService
     )
 {
     this.accessList     = accessList ?? throw new ArgumentNullException(nameof(accessList));
     this.exportService  = exportService ?? throw new ArgumentNullException(nameof(exportService));
     this.proxyProvider  = proxyProvider ?? throw new ArgumentNullException(nameof(proxyProvider));
     this.deletePrompter = deletePrompter ?? throw new ArgumentNullException(nameof(deletePrompter));
     this.updatePrompter = updatePrompter ?? throw new ArgumentNullException(nameof(updatePrompter));
     this.fileService    = fileService ?? throw new ArgumentNullException(nameof(fileService));
 }
Exemple #5
0
 public OilLakeMenubarViewModel(IFileService fileService, IFileExportService fileExportService)
 {
     _fileService       = fileService;
     _fileExportService = fileExportService;
     DisplayLicenses    = new DelegateCommand(async() =>
     {
         var dialog      = new OilLakeUI.UI.LicenseDialog();
         dialog.XamlRoot = MainWindow.Root;
         var result      = await dialog.ShowAsync();
     });
     DisplayAbout = new DelegateCommand(async() =>
     {
         var dialog      = new OilLakeUI.UI.AboutDialog();
         dialog.XamlRoot = MainWindow.Root;
         var result      = await dialog.ShowAsync();
     });
 }
Exemple #6
0
 public MainWindowViewModel(IFileService fileService, IFileExportService fileExportService)
 {
     _fileService            = fileService;
     _fileExportService      = fileExportService;
     OilLakeMenubarViewModel = new OilLakeMenubarViewModel(fileService, fileExportService)
     {
         SaveFile    = new DelegateCommand(async() => await SaveAsync(TabViewModel.SelectFileData)),
         SaveNewFile = new DelegateCommand(async() => await SaveNewAsync(TabViewModel.SelectFileData)),
         OpenNewFile = new DelegateCommand(() => TabViewModel.ItemCollection.Add(new MarkdownViewModel(FileData.DefaultData))),
         Export      = new DelegateCommand <string>(async(str) =>
         {
             if (Enum.TryParse(str, out FileType fileType) && Enum.IsDefined(typeof(FileType), fileType))
             {
                 await ExportAsync(TabViewModel.SelectFileData, fileType);
             }
         }),
         CloseWindow = new DelegateCommand(() => App.Current.Shutdown())
     };
 }
        /// <summary>
        /// Initializes the instance with the services needed to export files.
        /// </summary>
        /// <param name="accessList">Used to retrieve files from stored tokens.</param>
        /// <param name="proxyProvider">Used to manage underlying cached file proxies.</param>
        /// <param name="exportService">The service used to export databases.</param>
        /// <param name="deletePrompter">A service used to prompt the user for consent to delete a file.</param>
        /// <param name="updatePrompter">A service used to prompt the user for consent to update a file.</param>
        /// <param name="fileService">A service used to access the filesystem.</param>
        protected CachedFileExportingViewModel(
            IDatabaseAccessList accessList,
            IFileProxyProvider proxyProvider,
            IFileExportService exportService,
            IUserPromptingService deletePrompter,
            IUserPromptingService updatePrompter,
            IFileAccessService fileService
            )
        {
            this.accessList     = accessList ?? throw new ArgumentNullException(nameof(accessList));
            this.proxyProvider  = proxyProvider ?? throw new ArgumentNullException(nameof(proxyProvider));
            this.exportService  = exportService ?? throw new ArgumentNullException(nameof(exportService));
            this.deletePrompter = deletePrompter ?? throw new ArgumentNullException(nameof(deletePrompter));
            this.updatePrompter = updatePrompter ?? throw new ArgumentNullException(nameof(updatePrompter));
            this.fileService    = fileService ?? throw new ArgumentNullException(nameof(fileService));

            this.data = new ObservableCollection <StoredFileDescriptor>(
                this.accessList.Entries.Select(entry => new StoredFileDescriptor(entry))
                );

            this.readOnlyData = new ReadOnlyObservableCollection <StoredFileDescriptor>(this.data);
        }