Exemplo n.º 1
0
        public static async Task <IList <EntryInfo> > GetHistoryEntriesInfo()
        {
            Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
            IList <string> entriesKey = GetHistory();
            IDictionary <string, EntryInfo> oldHistory = new Dictionary <string, EntryInfo>(StringComparer.OrdinalIgnoreCase);

            if (_chmHistoryFiles != null)
            {
                foreach (var x in _chmHistoryFiles.Entries)
                {
                    oldHistory.Add(x.Key, x);
                }
            }
            else
            {
                _chmHistoryFiles = new EntriesInfo();
            }
            List <EntryInfo> newHistory     = new List <EntryInfo>();
            List <string>    invalidEntries = new List <string>();

            foreach (var k in entriesKey)
            {
                if (oldHistory.ContainsKey(k))
                {
                    newHistory.Add(oldHistory[k]);
                }
                else if (await ChmFile.ContainsFile(k))
                {
                    try
                    {
                        MetaInfo info = await MetaInfo.ReadMetaInfo(k);

                        EntryInfo entry = new EntryInfo();
                        entry.Key  = k;
                        entry.Name = info.GetDisplayName();
                        if (string.IsNullOrEmpty(entry.Name))
                        {
                            entry.Name = "未知";
                        }
                        entry.Image = await Snapshot.LoadSnapshot(k);

                        newHistory.Add(entry);
                    }
                    catch
                    {
                        //Ignore
                        invalidEntries.Add(k);
                    }
                }
                else
                {
                    invalidEntries.Add(k);
                }
            }
            await DeleteFromHistory(invalidEntries);

            _chmHistoryFiles.Entries = newHistory;
            return(newHistory);
        }
Exemplo n.º 2
0
 public static async Task<ChmFile> OpenLocalChmFile(EntryInfo entry)
 {
     return await OpenLocalChmFile(entry.Key);
 }