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); }
protected DownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, string destFolder, AccountFile file) : base(account, accountName, priority, parent) { DestFolder = destFolder; File = file; }
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)); }
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; }
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); } }
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))); }
/// <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); }
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); } }
// 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); }
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))); }
protected DeleteFolderTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder) : base(account, accountName, priority, parents, AsyncTaskParentsMode.CancelIfAnyErrorOrCanceled) { Folder = folder; }
public DeleteFileTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file) : base(account, accountName, priority, parents, file, false) { }
public DeleteFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile folder) : base(account, accountName, priority, parent, folder) { }
public SynchronizeFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile sourceFile) : base(account, accountName, priority, parent) { SourceFile = sourceFile; }
public DeleteFileTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file, bool archiveFileOnly) : base(account, accountName, priority, parents) { File = file; ArchiveFileOnly = archiveFileOnly; }
public CreateFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string folderName, AccountFile destFolder) : base(account, accountName, priority, parent) { FolderName = folderName; DestFolder = destFolder; }
public NodeInfo(AccountFile file, string accountName) { Type = NodeType.Folder; File = file; AccountName = accountName; }
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); }
public DownloadFolderFromStorageTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile folder, string destFolder) : base(account, accountName, priority, parent, destFolder, folder) { }
public DownloadFileFromStorageTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file, string destFolder) : base(account, accountName, priority, parent, destFolder, file) { }
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); }
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); }
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); }
protected abstract DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file, string destFolder);
public UploadFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string path, AccountFile destFolder) : base(account, accountName, priority, parent) { Path = path; DestFolder = destFolder; }
public DownloadFolderFromDriveTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile folder, string destFolder) : base(account, accountName, priority, parent, destFolder, folder) { }
public UploadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, string fileName, AccountFile destFolder) : base(account, accountName, priority, parent) { FileName = fileName; DestFolder = destFolder; }
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)); }
public SynchronizeDriveFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file) : base(account, accountName, priority, parent) { File = file; }
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)); }
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); }
public SynchronizeDriveEmptyFolderTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder) : base(account, accountName, priority, parents) { Folder = folder; }
public DeleteEmptyFolderTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder) : base(account, accountName, priority, parents, folder) { }