コード例 #1
0
        internal SettingsGroup(XElement element, SettingsFile origin)
            : base(element, origin)
        {
            ElementName = element.Name.LocalName;

            Children = SettingFactory.ParseChildren <T>(element, origin, CanBeCleared).ToList();

            foreach (var child in Children)
            {
                child.Parent = this;
            }
        }
コード例 #2
0
        internal SettingsGroup(XElement element, SettingsFile origin)
            : base(element, origin)
        {
            ElementName = element.Name.LocalName;

            ChildrenSet = SettingFactory.ParseChildren <T>(element, origin, CanBeCleared).ToDictionary(c => c, c => c);

            foreach (var child in ChildrenSet)
            {
                child.Value.Parent = this;
            }
        }
コード例 #3
0
        internal PackageSourceMappingSourceItem(XElement element, SettingsFile origin)
            : base(element, origin)
        {
            _parsedDescendants = element.Nodes().Where(n => n is XElement || n is XText text && !string.IsNullOrWhiteSpace(text.Value))
                                 .Select(e => SettingFactory.Parse(e, origin));

            var parsedPackagePatternItems = _parsedDescendants.OfType <PackagePatternItem>().ToList();

            if (parsedPackagePatternItems.Count == 0)
            {
                throw new NuGetConfigurationException(string.Format(CultureInfo.CurrentCulture, Resources.Error_ItemNeedsAtLeastOnePackagePatternWithPath, Key, origin.ConfigFilePath));
            }

            Patterns = parsedPackagePatternItems;
        }
コード例 #4
0
ファイル: UnknownItem.cs プロジェクト: rytmis/NuGet.Client
        internal UnknownItem(XElement element, SettingsFile origin)
            : base(element, origin)
        {
            ElementName      = element.Name.LocalName;
            _mutableChildren = new Dictionary <SettingBase, SettingBase>();

            var descendants = element.Nodes().Where(n => n is XText text && !string.IsNullOrWhiteSpace(text.Value) || n is XElement)
                              .Select(d => SettingFactory.Parse(d, origin)).Distinct();

            foreach (var descendant in descendants)
            {
                descendant.Parent = this;

                _mutableChildren.Add(descendant, descendant);
            }
        }
コード例 #5
0
        internal TrustedSignerItem(XElement element, SettingsFile origin)
            : base(element, origin)
        {
            _parsedDescendants = element.Nodes().Where(n => n is XElement || n is XText text && !string.IsNullOrWhiteSpace(text.Value))
                                 .Select(e => SettingFactory.Parse(e, origin));

            var parsedCertificates = _parsedDescendants.OfType <CertificateItem>().ToList();

            if (parsedCertificates.Count() < 1)
            {
                throw new NuGetConfigurationException(
                          string.Format(CultureInfo.CurrentCulture, Resources.UserSettings_UnableToParseConfigFile, Resources.TrustedSignerMustHaveCertificates, origin.ConfigFilePath));
            }

            Certificates = parsedCertificates;
        }
コード例 #6
0
ファイル: OwnersItem.cs プロジェクト: rytmis/NuGet.Client
        internal OwnersItem(XElement element, SettingsFile origin)
            : base(element, origin)
        {
            var descendants = element.Nodes().Where(n => n is XText text && !string.IsNullOrWhiteSpace(text.Value) || n is XElement)
                              .Select(d => SettingFactory.Parse(d, origin)).Distinct();

            if (descendants == null || descendants.Count() != 1 || descendants.FirstOrDefault(d => d is SettingText) == null)
            {
                throw new NuGetConfigurationException(
                          string.Format(CultureInfo.CurrentCulture, Resources.UserSettings_UnableToParseConfigFile, Resources.OwnersMustOnlyHaveContent, origin.ConfigFilePath));
            }

            _content = descendants.OfType <SettingText>().First();

            Content = _content.Value.Split(OwnersListSeparator).Select(o => o.Trim()).ToList();
        }