示例#1
0
        public SetViewModel GetSet(long id, bool loadTerms)
        {
            // Try to return an instance we already have, if possible.

            var existing = MySets.FirstOrDefault(s => s.ID == id)
                           ?? FavouriteSets.FirstOrDefault(s => s.ID == id)
                           ?? Groups.SelectMany(g => g.Sets).FirstOrDefault(s => s.ID == id);

            if (existing != null)
            {
                if (loadTerms && !existing.TermsLoaded)
                {
                    LoadTerms(existing);
                }
                return(existing);
            }

            var si = cache.GetSet(id, loadTerms);

            if (si == null)
            {
                return(null);
            }
            bool starred = cache.GetFavourites().Any(x => x.ID == si.Value.ID);

            return(new SetViewModel(this, si.Value)
            {
                Starred = starred
            });
        }