static void InitializeDemo(MvcDemo demo) { var viewPath = Path.Combine(contentRootPath, "Views", demo.Widget, string.Format("{0}.cshtml", demo.Name)); var controllerPath = Path.Combine(contentRootPath, "Controllers", string.Format("{0}Controller.cs", demo.Widget)); var controller = new MvcDemoFile(new ActionTextParser(demo.Name)) { Path = controllerPath, Name = Path.GetFileName(controllerPath) }; demo.Files.Add(controller); var view = new MvcDemoFile { Path = viewPath, Name = Path.GetFileName(viewPath) }; demo.Files.Add(view); var stylesPath = GetContentItem("css", "DemosStyles", demo, "css"); if (File.Exists(stylesPath)) { var styles = new MvcDemoFile { Path = stylesPath, Name = Path.GetFileName(stylesPath) }; demo.Files.Add(styles); demo.HasStyles = true; } demo.Description = CommonMark.CommonMarkConverter.Convert(ReadDemoDescriptionFile(demo)); if (demo.MvcAdditionalFiles != null) { demo.MvcAdditionalFiles.ForEach(f => { var path = contentRootPath + f.Trim().Replace("/Content/", "/wwwroot/") .Replace("/Scripts/", "/wwwroot/").Replace("/", Path.DirectorySeparatorChar.ToString()); var file = new MvcDemoFile { Path = path, Name = Path.GetFileName(path) }; demo.Files.Add(file); }); } demo.Files = demo.Files.OrderByDescending(f => f.Name.Contains("cshtml") ).ThenByDescending(f => f.Name.Contains(demo.Widget.Replace("_", "") + "Controller.cs") ).ThenByDescending(f => f.Name.Contains("Controller.cs") ).ThenBy(f => f.Name.Contains(".css") ).ToList(); Demos.Add(demo); }
static string ReadDemoDescriptionFile(MvcDemo demo) { var result = string.Empty; var descriptionPath = GetContentItem("", "Descr", demo, "md"); if (!File.Exists(descriptionPath)) { descriptionPath = GetContentItem("", "Descr/Temp", demo, "md"); } if (File.Exists(descriptionPath)) { result = File.ReadAllText(descriptionPath); } return(result); }
static string GetContentItem(string mainFolder, string targetFolder, MvcDemo demo, string fileExtension) { return(Path.Combine(contentRootPath, "wwwroot", mainFolder, targetFolder, demo.Widget, string.Format("{0}." + fileExtension, demo.Name))); }