private void FetchNextLevelOfMailboxesAsync(string root, AccountStateObject stateObject) { new Thread(() => { try { using (var client = CreateClientByAccount(stateObject.Account)) { // get next level var wildcards = (root + "/%").TrimStart('/'); var response = client.LSub("", wildcards); var converted = response.Mailboxes.Select(x => new Mailbox { Fullname = x.Name, Name = ExtractName(x.Name, x.Delimiter), AccountState = stateObject }); var key = stateObject.Account.Name + "/" + root; AddMailboxToTreeSafely(converted, key); stateObject.IsBusy = false; } } catch (Exception ex) { LogSafely(ex.Message); } }).Start(); }
private void StoreNodeForFastLookup(AccountStateObject stateObject, TreeNode node, string mailboxName) { var key = stateObject.Account.Name + "/" + mailboxName; if (!_activityPendingNodes.ContainsKey(key)) { _activityPendingNodes.Add(key, node); } }
private void FetchNextLevelOfMailboxesAsync(string root, AccountStateObject stateObject) { new Thread(() => { try { using (var client = CreateClientByAccount(stateObject.Account)) { // get next level var wildcards = (root + "/%").TrimStart('/'); var response = client.LSub("", wildcards); var converted = response.Mailboxes.Select(x => new Mailbox {Fullname = x.Name, Name = ExtractName(x.Name, x.Delimiter), AccountState = stateObject}); var key = stateObject.Account.Name + "/" + root; AddMailboxToTreeSafely(converted, key); stateObject.IsBusy = false; } } catch (Exception ex) { LogSafely(ex.Message); } }).Start(); }