Пример #1
0
        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));
        }
Пример #2
0
 private static string GetSkinName(FileTemplateInfo templateInfo)
 {
     return(templateInfo.Name);
 }
Пример #3
0
 public ComponentDefinition(string id, FileTemplateInfo defaultTemplate, IReadOnlyDictionary <string, FileTemplateInfo> skins)
 {
     Id = id;
     DefaultTemplate = defaultTemplate;
     Skins           = skins;
 }