public ManageContentViewModel(string[] templateViews) { // Add any Schema Id's here that you don't want to be listed on this manage page var excludeSchemas = new List <int> { 1, 3 }; foreach (var view in templateViews) { var contents = System.IO.File.ReadAllText(view); var metadata = new Regex(@"^@\*---\r?\n\s?([\w\W]*)\r?\n\s?---\*@").Match(contents); if (!metadata.Success && metadata.Groups.Count < 2) { continue; } var metaRows = new Regex("\r?\n").Split(metadata.Groups[1].ToString()); var metaDictionary = metaRows.ToDictionary(row => row.Split(':').First().Trim(), row => row.Split(new[] { ':' }, 2).Last().Trim()); Templates.Add(new PageTemplate { TemplatePath = "~\\" + view.Replace(HttpContext.Current.Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty), Name = metaDictionary.ContainsKey("name") && metaDictionary["name"] != null ? metaDictionary["name"] : "", ThumbnailPath = metaDictionary.ContainsKey("thumbnail") && metaDictionary["thumbnail"] != null ? metaDictionary["thumbnail"] : "", ViewTemplate = metaDictionary.ContainsKey("template") && metaDictionary["template"] != null ? metaDictionary["template"] : "Blank", MetaData = metaDictionary }); } Pages = Context.ContentPages.Where(x => x.IsRevision == false && !excludeSchemas.Contains((int)x.SchemaId)).ToList(); // Grab the formatted nav list for the category drop down NavList = NavigationUtils.GetNavList(); }
public ManageContentViewModel(int schemaId) { SchemaId = schemaId; Pages = Context.ContentPages.Where(x => x.IsRevision == false && x.SchemaId == schemaId).OrderBy(x => x.SortOrder).ToList(); // Grab the formatted nav list for the category drop down NavList = NavigationUtils.GetNavList(); }