public static IEnumerable <IPackageReference> GetPackageReferences(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement) { var packageReferences = packageReferencesItemGroupXElement.GetPackageReferenceXElements() .Select(xElement => new PackageReferenceXElement(xElement)); return(packageReferences); }
public static IEnumerable <XElement> GetPackageReferenceXElementsWhereName(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement, string name) { var xPackageReferences = packageReferencesItemGroupXElement.GetPackageReferenceXElements() .Where(xElement => xElement.Attribute(ProjectFileXmlElementName.Include).Value == name); return(xPackageReferences); }
public static PackageReferencesItemGroupXElement AddPackageReferencesItemGroupXElement(this ProjectXElement projectXElement) { var xItemGroupXElement = projectXElement.AddItemGroupXElement(); var packageReferencesItemGroupXElement = PackageReferencesItemGroupXElement.New(xItemGroupXElement); return(packageReferencesItemGroupXElement); }
// I don't want to create <ItemGroup> elements with no child elements. // Maybe this is a final formatting thing before serialization? 1) Ensure XText nodes sandwich all <Project> element children, 2) Ensure that all empty <ItemGroup> elements are removed. // YES! But, I will also do my best to prevent adding empty <ItemGroup> elements. Doing so at the ProjectXElement extensions level of abstraction might be the wrong level, but . // Is there an <ItemGroup> element with a <PackageReference> child? // Yes? Use return that <ItemGroup> as a PackageReferencesItemGroupXElement. // No? Create public static bool HasPackageReferencesItemGroupElement(this ProjectXElement projectXElement, out PackageReferencesItemGroupXElement packageReferencesItemGroupXElement) { var hasItemGroupElement = projectXElement.HasItemGroupElementWithChildSingleOrDefault(ProjectFileXmlElementName.PackageReference, out var itemGroupElement); packageReferencesItemGroupXElement = hasItemGroupElement ? PackageReferencesItemGroupXElement.New(itemGroupElement) : default; return(hasItemGroupElement); }
/// <summary> /// Note, no need for package version string since you can't have mulitple versions of the same package. /// </summary> public static bool HasPackageReference(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement, string name, out IPackageReference packageReference) { packageReference = packageReferencesItemGroupXElement.GetPackageReferenceXElementsWhereName(name) .Select(xElement => PackageReferenceXElement.From(xElement)) .SingleOrDefault(); var hasPackageReference = PackageReferenceHelper.WasFound(packageReference); return(hasPackageReference); }
public static bool RemovePackageReference(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement, IPackageReference packageReference) { var xPackageReference = packageReferencesItemGroupXElement.GetPackageReferenceXElementsWhereName(packageReference.Name) .SingleOrDefault(); var wasFound = XElementHelper.WasFound(xPackageReference); if (wasFound) { xPackageReference.Remove(); } return(wasFound); }
public static bool HasPackageReference(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement, string name) { var hasPackageReference = packageReferencesItemGroupXElement.HasPackageReference(name, out _); return(hasPackageReference); }
public static IPackageReference AddPackageReference(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement, string name, string versionString) { var projectReference = PackageReferenceXElement.New(packageReferencesItemGroupXElement, name, versionString); return(projectReference); }
public static IEnumerable <XElement> GetPackageReferenceXElements(this PackageReferencesItemGroupXElement packageReferencesItemGroupXElement) { var packageReferenceXElements = packageReferencesItemGroupXElement.Value.Elements(ProjectFileXmlElementName.PackageReference); return(packageReferenceXElements); }
public static PackageReferenceXElement New(PackageReferencesItemGroupXElement parent, string name, string versionString) { var packageReference = PackageReferenceXElement.New(parent.Value, name, versionString); return(packageReference); }
public static PackageReferencesItemGroupXElement AsPackageReferencesItemGroup(this XElement xElement) { var packageReferenceItemGroup = new PackageReferencesItemGroupXElement(xElement); return(packageReferenceItemGroup); }
public static PackageReferencesItemGroupXElement New(XElement value) { var packageReferencesItemGroupXElement = new PackageReferencesItemGroupXElement(value); return(packageReferencesItemGroupXElement); }