コード例 #1
0
 public StartWindowViewModel(IWindowsManager windowsManager,
                             IFileSystemViewModelFactory fileSystemViewModelFactory,
                             IRelayCommandFactory commandFactory)
     : base(windowsManager)
 {
     _fileSystemViewModelFactory = fileSystemViewModelFactory;
     CreateDriveCommand          = commandFactory.Create(createDriveExec);
     OpenDriveCommand            = commandFactory.Create(openDriveExec);
     ExitCommand = commandFactory.Create(exitExec);
 }
コード例 #2
0
        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);
        }
コード例 #5
0
 public FileSystemViewModel(IScarletCommandBuilder commandBuilder, IFileSystemViewModelFactory factory, FileSystemOptionsViewModel options)
     : base(commandBuilder)
 {
     _factory = factory ?? throw new ArgumentNullException(nameof(factory));
     Options  = options ?? throw new ArgumentNullException(nameof(options));
 }