public IEnumerable GetExclusions()

in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Templates/TemplatesRepository.cs [441:495]


        public IEnumerable<ITemplateInfo> GetExclusions(ITemplateInfo template, UserSelectionContext context)
        {
            if (string.IsNullOrEmpty(context.ProjectType))
            {
                throw new ArgumentNullException(nameof(context.ProjectType));
            }

            var exclusionsList = new List<ITemplateInfo>();
            var exclusions = template.GetExclusionsList();

            foreach (var exclusion in exclusions)
            {
                var exclusionTemplate = Find(t => t.GroupIdentity == exclusion
                                                                && (t.GetProjectTypeList().Contains(context.ProjectType) || t.GetProjectTypeList().Contains(All))
                                                                && IsMatchFrontEnd(t, context.FrontEndFramework)
                                                                && IsMatchBackEnd(t, context.BackEndFramework)
                                                                && IsMatchPropertyBag(t, context.PropertyBag)
                                                                && t.GetPlatform() == context.Platform);

                if (exclusionTemplate == null)
                {
                    LogOrAlertException(string.Format(StringRes.ErrorExclusionNotFound, exclusionTemplate, context.FrontEndFramework, context.BackEndFramework, context.Platform));
                }
                else
                {
                    var templateType = exclusionTemplate.GetTemplateType();

                    if (!templateType.IsItemTemplate())
                    {
                        LogOrAlertException(string.Format(StringRes.ErrorExclusionType, exclusionTemplate.Identity));
                    }
                    else if (template.GetRightClickEnabled())
                    {
                        LogOrAlertException(string.Format(StringRes.ErrorExclusionRightClick, template.Identity));
                    }
                    else if (template.GetDependencyList().Contains(exclusion))
                    {
                        LogOrAlertException(string.Format(StringRes.ErrorExclusionAndDependency, template.Identity, exclusion));
                    }
                    else if (template.GetRequirementsList().Contains(exclusion))
                    {
                        LogOrAlertException(string.Format(StringRes.ErrorExclusionAndRequirement, template.Identity, exclusion));
                    }
                    else
                    {
                        if (!exclusionsList.Contains(exclusionTemplate))
                        {
                            exclusionsList.Add(exclusionTemplate);
                        }
                    }
                }
            }

            return exclusionsList;
        }