コード例 #1
0
ファイル: CreateFolderTask.cs プロジェクト: fiftin/oblqo
 protected override async Task OnStartAsync()
 {
     var destFolder = DestFolder;
     if (destFolder == null && Common.IsSingle(Parents) && Parents[0] is CreateFolderTask)
         destFolder = ((CreateFolderTask)Parents[0]).CreatedFolder;
     CreatedFolder = await Account.CreateFolderAsync(FolderName, destFolder, CancellationTokenSource.Token);
 }
コード例 #2
0
ファイル: DownloadFileTask.cs プロジェクト: fiftin/oblqo
 protected DownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent,
     string destFolder, AccountFile file)
     : base(account, accountName, priority, parent)
 {
     DestFolder = destFolder;
     File = file;
 }
コード例 #3
0
ファイル: UploadFolderTask.cs プロジェクト: fiftin/oblqo
 private void EnumerateFilesRecursiveAsync(DirectoryInfo folder, AccountFile destDirectory, AsyncTask task, CancellationToken token)
 {
     foreach (var file in folder.EnumerateFiles())
     {
         if (token.IsCancellationRequested)
             return;
         //var newTask = task == null
         //    ? new UploadFileTask(Account, AccountName, 0, null, file.FullName, destDirectory)
         //    : new UploadFileTask(Account, AccountName, 0, new[] { task }, file.FullName, null);
         var newTask = new UploadFileTask(Account, AccountName, 0, new[] { task }, file.FullName, null);
         AddTask(newTask);
         lastTask.AddParent(newTask);
     }
     foreach (var dir in folder.EnumerateDirectories())
     {
         if (token.IsCancellationRequested)
             return;
         //var newTask = task == null
         //    ? new CreateFolderTask(Account, AccountName, 0, null, dir.Name, destDirectory)
         //    : new CreateFolderTask(Account, AccountName, 0, new[] { task }, dir.Name, null);
         var newTask = new CreateFolderTask(Account, AccountName, 0, new[] { task }, dir.Name, null);
         AddTask(newTask);
         lastTask.AddParent(newTask);
         EnumerateFilesRecursiveAsync(dir, destDirectory, newTask, token);
     }
     OnProgress(new AsyncTaskProgressEventArgs(0, null));
 }
コード例 #4
0
 public List<Model.AccountModel> LoadAccounts()
 {
     var res = new AccountFile<AccountModel>(UserModel.Current.UserID).LoadFiles();
     foreach (var item in res)
     {
         if (item.UserID.IsNullOrEmpity())
         {
             item.UserID = UserModel.Current.UserID;
         }
     }
     return res;
 }
コード例 #5
0
ファイル: DownloadFolderTask.cs プロジェクト: fiftin/oblqo
 protected async Task EnumerateFilesRecursiveAsync(AccountFile folder, string dest)
 {
     var files = await Account.GetFilesAsync(folder, CancellationTokenSource.Token);
     foreach (var f in files)
         AddTask(CreateDownloadFileTask(Account, AccountName, 0, null, f, dest));
     var dirs = await Account.GetSubfoldersAsync(folder, CancellationTokenSource.Token);
     foreach (var d in dirs)
     {
         var path = Common.AppendToPath(dest, d.Name);
         Directory.CreateDirectory(path);
         await EnumerateFilesRecursiveAsync(d, path);
     }
 }
コード例 #6
0
ファイル: UploadFileTask.cs プロジェクト: fiftin/oblqo
        protected override async Task OnStartAsync()
        {
            var destFolder = DestFolder;
            if (destFolder == null && Common.IsSingle(Parents) && Parents[0] is CreateFolderTask)
                destFolder = ((CreateFolderTask)Parents[0]).CreatedFolder;

            // sync dest folder on all drives
            var tasks = (from drive in Account.Drives
                         where DestFolder.GetDriveFile(drive) == null
                         select DestFolder.GetFileAndCreateIfFolderIsNotExistsAsync(drive, CancellationTokenSource.Token)
                         ).Cast<Task>().ToList();
            await Task.WhenAll(tasks);

            UploadedFile = await
                Account.UploadFileAsync(FileName, destFolder, CancellationTokenSource.Token,
                    e => OnProgress(new AsyncTaskProgressEventArgs(e.PercentDone, null)));
        }
コード例 #7
0
ファイル: TestEnvironment.cs プロジェクト: fiftin/oblqo
        /// <summary>
        ///
        /// </summary>
        /// <param name="fullPath"></param>
        public async Task <AccountFile> GetFolderByFullPathAsync(string fullPath)
        {
            string[]    path   = fullPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            AccountFile folder = Account.RootFolder;

            foreach (var folderName in path)
            {
                var subfolders = await Account.GetSubfoldersAsync(folder, CancellationToken.None);

                folder = subfolders.FirstOrDefault(x => x.Name == folderName && x.IsFolder);
                if (folder == null)
                {
                    throw new ArgumentException("Directory doesn't exist: " + folderName);
                }
            }
            return(folder);
        }
コード例 #8
0
        protected async Task EnumerateFilesRecursiveAsync(AccountFile folder, string dest)
        {
            var files = await Account.GetFilesAsync(folder, CancellationTokenSource.Token);

            foreach (var f in files)
            {
                AddTask(CreateDownloadFileTask(Account, AccountName, 0, null, f, dest));
            }
            var dirs = await Account.GetSubfoldersAsync(folder, CancellationTokenSource.Token);

            foreach (var d in dirs)
            {
                var path = Common.AppendToPath(dest, d.Name);
                Directory.CreateDirectory(path);
                await EnumerateFilesRecursiveAsync(d, path);
            }
        }
コード例 #9
0
    // Start is called before the first frame update
    void Start()
    {
        if (File.Exists(accountDataPath))
        {
            accountFile = BinarySaveSystem.LoadFile <AccountFile>(accountDataPath);

            if (!firstTime)
            {
                ChangeMenu(Menu_States.Selector);
                return;
            }

            ChangeMenu(Menu_States.ACCOUNTDETECTED);

            return;
        }

        ChangeMenu(current_state);
    }
コード例 #10
0
        protected override async Task OnStartAsync()
        {
            var destFolder = DestFolder;

            if (destFolder == null && Common.IsSingle(Parents) && Parents[0] is CreateFolderTask)
            {
                destFolder = ((CreateFolderTask)Parents[0]).CreatedFolder;
            }

            // sync dest folder on all drives
            var tasks = (from drive in Account.Drives
                         where DestFolder.GetDriveFile(drive) == null
                         select DestFolder.GetFileAndCreateIfFolderIsNotExistsAsync(drive, CancellationTokenSource.Token)
                         ).Cast <Task>().ToList();
            await Task.WhenAll(tasks);

            UploadedFile = await
                           Account.UploadFileAsync(FileName, destFolder, CancellationTokenSource.Token,
                                                   e => OnProgress(new AsyncTaskProgressEventArgs(e.PercentDone, null)));
        }
コード例 #11
0
ファイル: DeleteFolderTaskBase.cs プロジェクト: fiftin/oblqo
 protected DeleteFolderTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents, AsyncTaskParentsMode.CancelIfAnyErrorOrCanceled)
 {
     Folder = folder;
 }
コード例 #12
0
ファイル: DeleteFileTask.cs プロジェクト: fiftin/oblqo
 public DeleteFileTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file)
     : base(account, accountName, priority, parents, file, false)
 {
 }
コード例 #13
0
ファイル: DeleteFolderTask.cs プロジェクト: fiftin/oblqo
 public DeleteFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile folder) 
     : base(account, accountName, priority, parent, folder)
 {
 }
コード例 #14
0
ファイル: SynchronizeFileTask.cs プロジェクト: fiftin/oblqo
 public SynchronizeFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile sourceFile)
     : base(account, accountName, priority, parent)
 {
     SourceFile = sourceFile;
 }
コード例 #15
0
ファイル: DeleteFileTaskBase.cs プロジェクト: fiftin/oblqo
 public DeleteFileTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file, bool archiveFileOnly)
     : base(account, accountName, priority, parents)
 {
     File = file;
     ArchiveFileOnly = archiveFileOnly;
 }
コード例 #16
0
ファイル: CreateFolderTask.cs プロジェクト: fiftin/oblqo
 public CreateFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string folderName, AccountFile destFolder) 
     : base(account, accountName, priority, parent)
 {
     FolderName = folderName;
     DestFolder = destFolder;
 }
コード例 #17
0
ファイル: NodeInfo.cs プロジェクト: fiftin/oblqo
 public NodeInfo(AccountFile file, string accountName)
 {
     Type = NodeType.Folder;
     File = file;
     AccountName = accountName;
 }
コード例 #18
0
 protected override DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent,
     AccountFile file, string destFolder)
 {
     return new DownloadFileFromStorageTask(account, accountName, priority, parent, file, destFolder);
 }
コード例 #19
0
 public DownloadFolderFromStorageTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile folder, string destFolder)
     : base(account, accountName, priority, parent, destFolder, folder)
 {
 }
コード例 #20
0
 public DownloadFileFromStorageTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file,
                                    string destFolder)
     : base(account, accountName, priority, parent, destFolder, file)
 {
 }
コード例 #21
0
 public override async Task LoadAsync(Account account, string id, XElement xml, CancellationToken token)
 {
     await base.LoadAsync(account, id, xml, token);
     Folder = await account.GetFileAsync(xml.Element("folder"), token);
 }
コード例 #22
0
 public NodeInfo(AccountFile file, string accountName)
 {
     Type        = NodeType.Folder;
     File        = file;
     AccountName = accountName;
 }
コード例 #23
0
ファイル: SynchronizeFileTask.cs プロジェクト: fiftin/oblqo
 public SynchronizeFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile sourceFile)
     : base(account, accountName, priority, parent)
 {
     SourceFile = sourceFile;
 }
コード例 #24
0
ファイル: DeleteFileTaskBase.cs プロジェクト: fiftin/oblqo
 public DeleteFileTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file, bool archiveFileOnly)
     : base(account, accountName, priority, parents)
 {
     File            = file;
     ArchiveFileOnly = archiveFileOnly;
 }
コード例 #25
0
ファイル: SynchronizeFileTask.cs プロジェクト: fiftin/oblqo
        public override async Task LoadAsync(Account account, string id, System.Xml.Linq.XElement xml, CancellationToken token)
        {
            await base.LoadAsync(account, id, xml, token);

            SourceFile = await account.GetFileAsync(xml.Element("sourceFile"), token);
        }
コード例 #26
0
ファイル: DownloadFileTask.cs プロジェクト: fiftin/oblqo
 public override async Task LoadAsync(Account account, string id, System.Xml.Linq.XElement xml, CancellationToken token)
 {
     await base.LoadAsync(account, id, xml, token);
     DestFolder = xml.Element("destFolder").Value;
     File = await account.GetFileAsync(xml.Element("file"), token);
 }
コード例 #27
0
ファイル: DownloadFolderTask.cs プロジェクト: fiftin/oblqo
 protected abstract DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file, string destFolder);
コード例 #28
0
ファイル: SynchronizeFileTask.cs プロジェクト: fiftin/oblqo
 public override async Task LoadAsync(Account account, string id, System.Xml.Linq.XElement xml, CancellationToken token)
 {
     await base.LoadAsync(account, id, xml, token);
     SourceFile = await account.GetFileAsync(xml.Element("sourceFile"), token);
 }
コード例 #29
0
 public UploadFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string path, AccountFile destFolder)
     : base(account, accountName, priority, parent)
 {
     Path       = path;
     DestFolder = destFolder;
 }
コード例 #30
0
 protected DeleteFolderTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents, AsyncTaskParentsMode.CancelIfAnyErrorOrCanceled)
 {
     Folder = folder;
 }
コード例 #31
0
 public DownloadFolderFromDriveTask(Account account, string accountName, int priority, AsyncTask[] parent,
                                    AccountFile folder, string destFolder)
     : base(account, accountName, priority, parent, destFolder, folder)
 {
 }
コード例 #32
0
 public UploadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, string fileName, AccountFile destFolder)
     : base(account, accountName, priority, parent)
 {
     FileName   = fileName;
     DestFolder = destFolder;
 }
コード例 #33
0
        public override async Task LoadAsync(Account account, string id, XElement xml, CancellationToken token)
        {
            await base.LoadAsync(account, id, xml, token);

            Folder = await account.GetFileAsync(xml.Element("folder"), token);
        }
コード例 #34
0
ファイル: FIleList.cs プロジェクト: fiftin/oblqo
        public void AddFile(AccountFile file, string accountName)
        {
            var fileState = Util.GetFileState(file);
            var key = "file";
            if (!string.IsNullOrWhiteSpace(file.MimeType))
            {
                var mimeTypeParts = file.MimeType.Split('/');
                if (mimeTypeParts.Length == 2)
                {
                    var tmpKey = string.Format("file_{0}_{1}", mimeTypeParts[0], mimeTypeParts[1]);
                    if (SmallImageList.Images.ContainsKey(tmpKey))
                    {
                        key = tmpKey;
                    }
                }
            }

            var item = fileListView.Items.Add("", file.Name, key);
            UpdateFileListItem(fileState, item);
            item.Tag = new NodeInfo(file, accountName);
            item.SubItems.Add(file.ModifiedDate.ToShortDateString());
            item.SubItems.Add(Common.NumberOfBytesToString(file.Size));
        }
コード例 #35
0
 public SynchronizeDriveFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file)
     : base(account, accountName, priority, parent)
 {
     File = file;
 }
コード例 #36
0
 protected override DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent,
                                                            AccountFile file, string destFolder)
 {
     return(new DownloadFileFromDriveTask(account, accountName, priority, parent, file, destFolder));
 }
コード例 #37
0
ファイル: DownloadFolderTask.cs プロジェクト: fiftin/oblqo
 public override async Task LoadAsync(Account account, string id, XElement xml, CancellationToken token)
 {
     await base.LoadAsync(account, id, xml, token);
     DestFolder = xml.Attribute("destFolder").Value;
     Folder = await account.GetFileAsync(xml, token);
 }
コード例 #38
0
 protected abstract DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file, string destFolder);
コード例 #39
0
 public SynchronizeDriveFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file)
     : base(account, accountName, priority, parent)
 {
     File = file;
 }
コード例 #40
0
 public SynchronizeDriveEmptyFolderTask(Account account, string accountName, int priority,
                                        AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents)
 {
     Folder = folder;
 }
コード例 #41
0
ファイル: UploadFolderTask.cs プロジェクト: fiftin/oblqo
 public UploadFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string path, AccountFile destFolder) 
     : base(account, accountName, priority, parent)
 {
     Path = path;
     DestFolder = destFolder;
 }
コード例 #42
0
 public SynchronizeDriveEmptyFolderTask(Account account, string accountName, int priority, 
     AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents)
 {
     Folder = folder;
 }
コード例 #43
0
ファイル: UploadFileTask.cs プロジェクト: fiftin/oblqo
 public UploadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, string fileName, AccountFile destFolder)
     : base(account, accountName, priority, parent)
 {
     FileName = fileName;
     DestFolder = destFolder;
 }
コード例 #44
0
 public DeleteEmptyFolderTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents, folder)
 {
 }
コード例 #45
0
 public CreateFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string folderName, AccountFile destFolder)
     : base(account, accountName, priority, parent)
 {
     FolderName = folderName;
     DestFolder = destFolder;
 }