Example #1
0
 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);
 }
Example #2
0
 protected DownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent,
     string destFolder, AccountFile file)
     : base(account, accountName, priority, parent)
 {
     DestFolder = destFolder;
     File = file;
 }
Example #3
0
 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));
 }
Example #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;
 }
Example #5
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);
     }
 }
Example #6
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)));
        }
Example #7
0
        /// <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);
        }
Example #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);
            }
        }
    // 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);
    }
Example #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)));
        }
Example #11
0
 protected DeleteFolderTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents, AsyncTaskParentsMode.CancelIfAnyErrorOrCanceled)
 {
     Folder = folder;
 }
Example #12
0
 public DeleteFileTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file)
     : base(account, accountName, priority, parents, file, false)
 {
 }
Example #13
0
 public DeleteFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile folder) 
     : base(account, accountName, priority, parent, folder)
 {
 }
Example #14
0
 public SynchronizeFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile sourceFile)
     : base(account, accountName, priority, parent)
 {
     SourceFile = sourceFile;
 }
Example #15
0
 public DeleteFileTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file, bool archiveFileOnly)
     : base(account, accountName, priority, parents)
 {
     File = file;
     ArchiveFileOnly = archiveFileOnly;
 }
Example #16
0
 public CreateFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string folderName, AccountFile destFolder) 
     : base(account, accountName, priority, parent)
 {
     FolderName = folderName;
     DestFolder = destFolder;
 }
Example #17
0
 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);
 }
Example #22
0
 public NodeInfo(AccountFile file, string accountName)
 {
     Type        = NodeType.Folder;
     File        = file;
     AccountName = accountName;
 }
Example #23
0
 public SynchronizeFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile sourceFile)
     : base(account, accountName, priority, parent)
 {
     SourceFile = sourceFile;
 }
Example #24
0
 public DeleteFileTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile file, bool archiveFileOnly)
     : base(account, accountName, priority, parents)
 {
     File            = file;
     ArchiveFileOnly = archiveFileOnly;
 }
Example #25
0
        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);
        }
Example #26
0
 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);
 }
Example #27
0
 protected abstract DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file, string destFolder);
Example #28
0
 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);
 }
Example #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;
 }
Example #30
0
 protected DeleteFolderTaskBase(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents, AsyncTaskParentsMode.CancelIfAnyErrorOrCanceled)
 {
     Folder = folder;
 }
 public DownloadFolderFromDriveTask(Account account, string accountName, int priority, AsyncTask[] parent,
                                    AccountFile folder, string destFolder)
     : base(account, accountName, priority, parent, destFolder, folder)
 {
 }
Example #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;
 }
Example #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);
        }
Example #34
0
        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));
        }
Example #35
0
 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));
 }
Example #37
0
 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);
 }
Example #38
0
 protected abstract DownloadFileTask CreateDownloadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file, string destFolder);
Example #39
0
 public SynchronizeDriveFileTask(Account account, string accountName, int priority, AsyncTask[] parent, AccountFile file)
     : base(account, accountName, priority, parent)
 {
     File = file;
 }
Example #40
0
 public SynchronizeDriveEmptyFolderTask(Account account, string accountName, int priority,
                                        AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents)
 {
     Folder = folder;
 }
Example #41
0
 public UploadFolderTask(Account account, string accountName, int priority, AsyncTask[] parent, string path, AccountFile destFolder) 
     : base(account, accountName, priority, parent)
 {
     Path = path;
     DestFolder = destFolder;
 }
 public SynchronizeDriveEmptyFolderTask(Account account, string accountName, int priority, 
     AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents)
 {
     Folder = folder;
 }
Example #43
0
 public UploadFileTask(Account account, string accountName, int priority, AsyncTask[] parent, string fileName, AccountFile destFolder)
     : base(account, accountName, priority, parent)
 {
     FileName = fileName;
     DestFolder = destFolder;
 }
Example #44
0
 public DeleteEmptyFolderTask(Account account, string accountName, int priority, AsyncTask[] parents, AccountFile folder)
     : base(account, accountName, priority, parents, folder)
 {
 }
Example #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;
 }