Example #1
0
 /// <inheritdoc />
 public void Dispose()
 {
     foreach (var contentsValue in Contents.Values)
     {
         contentsValue?.Dispose();
     }
     Contents.Clear();
     Filenames.Clear();
     Formats.Clear();
     OriginalFormats.Clear();
 }
        /// <summary>
        /// Define this instance.
        /// </summary>
        public virtual void Define()
        {
            // Initialize
            Keywords.Clear();
            Formats.Clear();
            Closures.Clear();
            FormattingCommands.Clear();

            // Define the default set of closures
            Closures.Add(new LanguageClosure('(', ')'));
            Closures.Add(new LanguageClosure('[', ']'));
            Closures.Add(new LanguageClosure('<', '>'));
            Closures.Add(new LanguageClosure('{', '}'));
            Closures.Add(new LanguageClosure('"'));
        }
        protected void BuildTypesCollections()
        {
            var textInfo = CultureInfo.CurrentCulture.TextInfo;

            Types.Clear();
            Types.Add(Strings.GetMoreModsViewModel_AllTypes);
            foreach (var type in from m in TrovesaurusMods
                     group m by m.DataObject.Type into g
                     orderby g.First().DataObject.Type
                     select textInfo.ToTitleCase(g.First().DataObject.Type.ToLower()))
            {
                Types.Add(type);
            }

            SubTypes.Clear();
            SubTypes.Add(Strings.GetMoreModsViewModel_AllSubTypes);
            foreach (var subtype in from m in TrovesaurusMods
                     where !string.IsNullOrEmpty(m.DataObject.SubType)
                     group m by m.DataObject.SubType into g
                     orderby g.First().DataObject.SubType
                     select textInfo.ToTitleCase(g.First().DataObject.SubType.ToLower()))
            {
                SubTypes.Add(subtype);
            }

            Formats.Clear();
            Formats.Add(Strings.GetMoreModsViewModel_AllFormats);
            //var formats = TrovesaurusMods.SelectMany(m => m.DataObject.Downloads).GroupBy(d => d.Format);
            foreach (var format in from d in TrovesaurusMods.SelectMany(m => m.DataObject.Downloads)
                     group d by d.Format into g
                     orderby g.First().Format
                     select g.First().Format)
            {
                Formats.Add(format);
            }
        }