Esempio n. 1
0
        public override async Task <IEnumerable <AsyncTask> > GetTasksAsync(Account account, string accountName, CancellationToken token)
        {
            var ret = new List <AsyncTask>();

            using (var store = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null))
            {
                if (!store.DirectoryExists("accounts/" + accountName + "/tasks"))
                {
                    return(ret);
                }
                var fileNames = store.GetFileNames("accounts/" + accountName + "/tasks/*");
                foreach (var filename in fileNames)
                {
                    try
                    {
                        using (var stream = store.OpenFile("accounts/" + accountName + "/tasks/" + filename, FileMode.Open, FileAccess.Read, FileShare.None))
                        {
                            var xml  = XDocument.Load(stream).Root;
                            var task = await AsyncTask.LoadFromXmlAsync(account, filename, xml, token);

                            ret.Add(task);
                        }
                    }
                    catch (Exception ex)
                    {
                        store.DeleteFile("accounts/" + accountName + "/tasks/" + filename);
                        OnError(ex);
                    }
                }
            }
            return(ret);
        }