Ejemplo n.º 1
0
        public void CheckMails()
        {
            TaskChainHandler handler = delegate()
            {
                return(CheckMailsAsync());
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 2
0
        public void UpdateAccount(IAccountSource account, bool silent)
        {
            TaskChainHandler handler = delegate()
            {
                return(UpdateAccountAsync(account, silent));
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 3
0
        public void AddLabel(IAccountSource source, string label)
        {
            TaskChainHandler handler = delegate()
            {
                return(AddLabelAsync(source, label));
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 4
0
        public void UpdateAccounts(bool silent)
        {
            TaskChainHandler handler = delegate()
            {
                return(UpdateAccountsAsync(silent));
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 5
0
        public void RemoveAccount(ISourceInfo source)
        {
            TaskChainHandler handler = delegate()
            {
                return(RemoveAccountInternal(source));
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 6
0
        public void RemoveLabel(ILabelSource label)
        {
            TaskChainHandler handler = delegate()
            {
                return(RemoveLabelAsync(label));
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 7
0
        public void DeleteMail(IEnumerable <ViewMailItem> items)
        {
            TaskChainHandler handler = delegate()
            {
                return(DeleteMailAsync(items));
            };

            SetDeleting(items);

            AddTaskToChain(handler);
        }
Ejemplo n.º 8
0
        public async Task RemoveAccountWait(ISourceInfo source)
        {
            TaskChainHandler handler = delegate()
            {
                return(RemoveAccountInternal(source));
            };
            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }
Ejemplo n.º 9
0
 void AddTaskToChain(TaskChainHandler task, TaskCompletionSource <object> completion_token = null)
 {
     mTaskChain.Enqueue(new TaskItem()
     {
         Handler    = task,
         Completion = completion_token
     });
     if (mTaskChainProcessor == null || mTaskChainProcessor.IsFaulted || mTaskChainProcessor.IsCompleted)
     {
         mTaskChainProcessor = TaskChainProcessor();
     }
 }
Ejemplo n.º 10
0
        public async Task CheckMailsWait()
        {
            TaskChainHandler handler = delegate()
            {
                return(CheckMailsAsync());
            };

            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }
Ejemplo n.º 11
0
        public async Task UpdateAccountWait(IAccountSource account, bool silent)
        {
            TaskChainHandler handler = delegate()
            {
                return(UpdateAccountAsync(account, silent));
            };

            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }
Ejemplo n.º 12
0
        public async Task AddLabelWait(IAccountSource source, string label)
        {
            TaskChainHandler handler = delegate()
            {
                return(AddLabelAsync(source, label));
            };

            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }
Ejemplo n.º 13
0
        public async Task RemoveLabelWait(ILabelSource label)
        {
            TaskChainHandler handler = delegate()
            {
                return(RemoveLabelAsync(label));
            };

            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }
Ejemplo n.º 14
0
        public async Task DeleteMailWait(IEnumerable <ViewMailItem> items)
        {
            TaskChainHandler handler = delegate()
            {
                return(DeleteMailAsync(items));
            };

            SetDeleting(items);

            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }
Ejemplo n.º 15
0
        public void SaveMailMetaData(params ViewMailItem[] items)
        {
            List <ViewMailItem> itemlist = GetUpdatedItems(items);

            if (itemlist == null)
            {
                return;
            }

            TaskChainHandler handler = delegate()
            {
                return(SaveMailMetaDataAsync(items));
            };

            AddTaskToChain(handler);
        }
Ejemplo n.º 16
0
        public void Init()
        {
            InfoCache = new UserInfoCache(this);
            mAccountDB.Load();


            foreach (var i in mAccountDB.Accounts)
            {
                Account account = new Account(this, i);
                mAccounts.Add(account);
                mViewAccounts.Add(account.ViewAccount);
                if (account.DBAccount.Permissions.HasFlag(Auth.AccessFlag.MailSend))
                {
                    mSendAccounts.Add(account.ViewAccount);
                }
            }

            List <DraftMessageSource> loaded_drafts = new List <DraftMessageSource>();

            foreach (var i in mAccountDB.Drafts)
            {
                DraftMessageSource source = new DraftMessageSource(this, i);

                if (source.Account == null)
                {
                    continue;
                }

                mDrafts.Add(source);
                loaded_drafts.Add(source);
            }

            TaskChainHandler load_draft_ids = async delegate()
            {
                foreach (var i in loaded_drafts)
                {
                    await EntityLookupAsync.LookupIDs(i.Recipients);
                }
            };

            AddTaskToChain(load_draft_ids);
        }
Ejemplo n.º 17
0
        public async Task SaveMailMetaDataWait(params ViewMailItem[] items)
        {
            List <ViewMailItem> itemlist = GetUpdatedItems(items);

            if (itemlist == null)
            {
                return;
            }

            TaskChainHandler handler = delegate()
            {
                return(SaveMailMetaDataAsync(items));
            };

            TaskCompletionSource <object> waitfor = new TaskCompletionSource <object>();

            AddTaskToChain(handler, waitfor);

            await waitfor.Task;
        }