public StartWindowViewModel(IWindowsManager windowsManager, IFileSystemViewModelFactory fileSystemViewModelFactory, IRelayCommandFactory commandFactory) : base(windowsManager) { _fileSystemViewModelFactory = fileSystemViewModelFactory; CreateDriveCommand = commandFactory.Create(createDriveExec); OpenDriveCommand = commandFactory.Create(openDriveExec); ExitCommand = commandFactory.Create(exitExec); }
public ScarletDrive(DriveInfo info, IScarletCommandBuilder commandBuilder, IFileSystemViewModelFactory factory, IReadOnlyCollection <FileAttributes> fileAttributes, IReadOnlyCollection <FileAttributes> folderAttributes) : base(commandBuilder) { _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _name = info.Name ?? throw new ArgumentException(nameof(info.Name)); _fullName = info.Name; _fileAttributes = fileAttributes; _folderAttributes = folderAttributes; IsContainer = true; Set(info); }
public static async Task <IReadOnlyCollection <IFileSystemChild> > GetChildren(this IFileSystemViewModelFactory factory, IFileSystemDirectory parent, IReadOnlyCollection <FileAttributes> fileAttributes, IReadOnlyCollection <FileAttributes> folderAttributes) { var canAccess = await factory.CanAccess(parent); if (!canAccess) { return(Enumerable.Empty <IFileSystemChild>().ToList()); } return(await factory.GetChildren((IFileSystemParent)parent, fileAttributes, folderAttributes)); }
public static async Task <IReadOnlyCollection <IFileSystemChild> > GetChildren(this IFileSystemViewModelFactory factory, IFileSystemParent parent, IReadOnlyCollection <FileAttributes> fileAttributes, IReadOnlyCollection <FileAttributes> folderAttributes) { if (await factory.IsEmpty(parent)) { return(Enumerable.Empty <IFileSystemChild>().ToList()); } var directories = factory.GetDirectories(parent, fileAttributes, folderAttributes); var files = factory.GetFiles(parent, fileAttributes); await Task.WhenAll(directories, files); var results = new List <IFileSystemChild>(directories.Result.Count + files.Result.Count); results.AddRange(directories.Result); results.AddRange(files.Result); return(results); }
public FileSystemViewModel(IScarletCommandBuilder commandBuilder, IFileSystemViewModelFactory factory, FileSystemOptionsViewModel options) : base(commandBuilder) { _factory = factory ?? throw new ArgumentNullException(nameof(factory)); Options = options ?? throw new ArgumentNullException(nameof(options)); }