| File: Core\RepositoryMetadata.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Packaging\NuGet.Packaging.csproj (NuGet.Packaging) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using NuGet.Shared; namespace NuGet.Packaging.Core { public class RepositoryMetadata : IEquatable<RepositoryMetadata> { public RepositoryMetadata() { } public RepositoryMetadata(string type, string url, string branch, string commit) { Type = type; Url = url; Branch = branch; Commit = commit; } public string Type { get; set; } = string.Empty; public string Url { get; set; } = string.Empty; public string Branch { get; set; } = string.Empty; public string Commit { get; set; } = string.Empty; public override bool Equals(object? obj) { return Equals(obj as RepositoryMetadata); } public static bool operator ==(RepositoryMetadata? a, RepositoryMetadata? b) { if (ReferenceEquals(a, b)) { return true; } if (a is null || b is null) { return false; } return a.Equals(b); } public static bool operator !=(RepositoryMetadata? a, RepositoryMetadata? b) { return !(a == b); } public bool Equals(RepositoryMetadata? other) { if (other == null) { return false; } if (ReferenceEquals(this, other)) { return true; } return string.Equals(Type, other.Type, StringComparison.OrdinalIgnoreCase) && Url == other.Url && Branch == other.Branch && Commit == other.Commit; } public override int GetHashCode() { var combiner = new HashCodeCombiner(); combiner.AddObject(Type, StringComparer.OrdinalIgnoreCase); combiner.AddObject(Url); combiner.AddObject(Branch); combiner.AddObject(Commit); return combiner.CombinedHash; } } }