private static ComponentDefinition CreateComponentDefinition(IGrouping <string, FileTemplateInfo> t) { var componentId = GetComponentId(t.Key); var defaultTemplateCandidates = GetDefaultTemplateCandidates(componentId); FileTemplateInfo defaultTemplate = null; foreach (var defaultTemplateCandidate in defaultTemplateCandidates) { defaultTemplate = t.FirstOrDefault(a => a.Path.ToString().EndsWith(defaultTemplateCandidate, StringComparison.InvariantCultureIgnoreCase)); if (defaultTemplate != null) { break; } } var templates = t.ToList(); if (defaultTemplate == null && templates.Count == 1) { defaultTemplate = templates[0]; } var skins = templates.Where(t1 => t1 != defaultTemplate).ToDictionary(GetSkinName); if (defaultTemplate == null && skins.TryGetValue(string.Empty, out defaultTemplate)) { skins.Remove(string.Empty); } return(new ComponentDefinition(componentId, defaultTemplate, skins)); }
private static string GetSkinName(FileTemplateInfo templateInfo) { return(templateInfo.Name); }
public ComponentDefinition(string id, FileTemplateInfo defaultTemplate, IReadOnlyDictionary <string, FileTemplateInfo> skins) { Id = id; DefaultTemplate = defaultTemplate; Skins = skins; }