Refactor IPAM model classes to use records for Address, Subnetwork, Vlan, Vrf, Section, Tag, Domain, Nameserver, and Session; enhance documentation and implement value equality for records.
This commit is contained in:
@@ -1,45 +1,21 @@
|
||||
namespace PS.IPAM;
|
||||
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// Represents an address tag in phpIPAM.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class Tag {
|
||||
public int Id { get; }
|
||||
public string Type { get; }
|
||||
public bool ShowTag { get; }
|
||||
public string BGColor { get; }
|
||||
public string FGColor { get; }
|
||||
public bool Compress { get; }
|
||||
public bool Locked { get; }
|
||||
public bool UpdateTag { get; }
|
||||
|
||||
public Tag(
|
||||
int id,
|
||||
string type,
|
||||
bool showTag,
|
||||
string BGColor,
|
||||
string FGColor,
|
||||
string compress,
|
||||
string locked,
|
||||
bool updateTag
|
||||
) {
|
||||
this.Id = id;
|
||||
this.Type = type;
|
||||
this.ShowTag = showTag;
|
||||
this.BGColor = BGColor;
|
||||
this.FGColor = FGColor;
|
||||
this.Compress = this.StringToBool(compress);
|
||||
this.Locked = this.StringToBool(locked);
|
||||
this.UpdateTag = updateTag;
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return this.Type;
|
||||
}
|
||||
|
||||
private bool StringToBool(string str) {
|
||||
if (str == "Yes") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public sealed record Tag(
|
||||
int Id,
|
||||
string Type,
|
||||
bool ShowTag,
|
||||
string BackgroundColor,
|
||||
string ForegroundColor,
|
||||
string Compress,
|
||||
string Locked,
|
||||
bool UpdateTag
|
||||
)
|
||||
{
|
||||
public override string ToString() => Type;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user