diff --git a/VisualCard/Parsers/Arguments/PropertyInfo.cs b/VisualCard/Parsers/Arguments/PropertyInfo.cs index 0d8cce1..43f0dd3 100644 --- a/VisualCard/Parsers/Arguments/PropertyInfo.cs +++ b/VisualCard/Parsers/Arguments/PropertyInfo.cs @@ -55,6 +55,12 @@ public class PropertyInfo : IEquatable public string Group => group; + /// + /// Nested property groups + /// + public string[] NestedGroups => + group.Split('.'); + /// /// Argument info instances. It includes AltId, type, and value /// diff --git a/VisualCard/Parsers/VcardParser.cs b/VisualCard/Parsers/VcardParser.cs index dde39ab..16acde6 100644 --- a/VisualCard/Parsers/VcardParser.cs +++ b/VisualCard/Parsers/VcardParser.cs @@ -149,7 +149,7 @@ public Card Parse() throw new InvalidDataException("Profile must be \"vCard\""); // Set the string for real - var stringValueInfo = new CardValueInfo(info, altId, elementTypes, valueType, info.Group, finalValue); + var stringValueInfo = new CardValueInfo(info, altId, elementTypes, valueType, finalValue); card.AddString(stringType, stringValueInfo); } break; @@ -161,7 +161,7 @@ public Card Parse() // Now, get the part info finalValue = partsArrayType is PartsArrayEnum.NonstandardNames or PartsArrayEnum.IanaNames ? _value : info.Value; - var partInfo = partType.fromStringFunc(finalValue, info, altId, elementTypes, info.Group, valueType, CardVersion); + var partInfo = partType.fromStringFunc(finalValue, info, altId, elementTypes, valueType, CardVersion); // Set the array for real card.AddPartToArray(partsArrayType, partInfo); diff --git a/VisualCard/Parsers/VcardPartType.cs b/VisualCard/Parsers/VcardPartType.cs index a7476f5..c4e9a0b 100644 --- a/VisualCard/Parsers/VcardPartType.cs +++ b/VisualCard/Parsers/VcardPartType.cs @@ -31,14 +31,14 @@ internal class VcardPartType internal readonly PartCardinality cardinality; internal readonly Func minimumVersionCondition = (_) => true; internal readonly Type? enumType; - internal readonly Func? fromStringFunc; + internal readonly Func? fromStringFunc; internal readonly string defaultType = ""; internal readonly string defaultValue = ""; internal readonly string defaultValueType = ""; internal readonly string[] allowedExtraTypes = []; internal readonly string[] allowedValues = []; - internal VcardPartType(PartType type, object enumeration, PartCardinality cardinality, Func? minimumVersionCondition, Type? enumType, Func? fromStringFunc, string defaultType, string defaultValue, string defaultValueType, string[] allowedExtraTypes, string[] allowedValues) + internal VcardPartType(PartType type, object enumeration, PartCardinality cardinality, Func? minimumVersionCondition, Type? enumType, Func? fromStringFunc, string defaultType, string defaultValue, string defaultValueType, string[] allowedExtraTypes, string[] allowedValues) { this.type = type; this.enumeration = enumeration; diff --git a/VisualCard/Parts/BaseCardPartInfo.cs b/VisualCard/Parts/BaseCardPartInfo.cs index 35d0146..0bef6eb 100644 --- a/VisualCard/Parts/BaseCardPartInfo.cs +++ b/VisualCard/Parts/BaseCardPartInfo.cs @@ -54,7 +54,14 @@ public abstract class BaseCardPartInfo : IEquatable /// /// Property group /// - public virtual string Group { get; internal set; } = ""; + public string Group => + Property?.Group ?? ""; + + /// + /// Nested property groups + /// + public string[] NestedGroups => + Group.Split('.'); /// /// Is this part preferred? @@ -136,20 +143,19 @@ public override int GetHashCode() internal virtual bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo target) => true; - internal abstract BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion); + internal abstract BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion); internal abstract string ToStringVcardInternal(Version cardVersion); internal BaseCardPartInfo() { } - internal BaseCardPartInfo(PropertyInfo? property, int altId, string[] elementTypes, string valueType, string group) + internal BaseCardPartInfo(PropertyInfo? property, int altId, string[] elementTypes, string valueType) { Property = property; AltId = altId; ElementTypes = elementTypes; ValueType = valueType; - Group = group; } } } diff --git a/VisualCard/Parts/Card.cs b/VisualCard/Parts/Card.cs index 2d11d26..75e24a7 100644 --- a/VisualCard/Parts/Card.cs +++ b/VisualCard/Parts/Card.cs @@ -186,7 +186,7 @@ public CardValueInfo[] GetString(StringsEnum key) string fallback = key == StringsEnum.Kind ? "individual" : ""; CardValueInfo[] fallbacks = !string.IsNullOrEmpty(fallback) ? - [new CardValueInfo(null, -1, [], "", "", fallback)] : + [new CardValueInfo(null, -1, [], "", fallback)] : []; // Check to see if the string has a value or not diff --git a/VisualCard/Parts/CardValueInfo.cs b/VisualCard/Parts/CardValueInfo.cs index 5ba0823..3c34597 100644 --- a/VisualCard/Parts/CardValueInfo.cs +++ b/VisualCard/Parts/CardValueInfo.cs @@ -54,7 +54,14 @@ public class CardValueInfo : IEquatable> /// /// Property group /// - public virtual string Group { get; internal set; } = ""; + public string Group => + Property?.Group ?? ""; + + /// + /// Nested property groups + /// + public string[] NestedGroups => + Group.Split('.'); /// /// Value @@ -142,13 +149,12 @@ public override int GetHashCode() internal virtual bool EqualsInternal(CardValueInfo source, CardValueInfo target) => true; - internal CardValueInfo(PropertyInfo? property, int altId, string[] elementTypes, string valueType, string group, TValue? value) + internal CardValueInfo(PropertyInfo? property, int altId, string[] elementTypes, string valueType, TValue? value) { Property = property; AltId = altId; ElementTypes = elementTypes; ValueType = valueType; - Group = group; Value = value ?? throw new ArgumentNullException(nameof(value)); } diff --git a/VisualCard/Parts/Implementations/AddressInfo.cs b/VisualCard/Parts/Implementations/AddressInfo.cs index 3bb8060..d761dbd 100644 --- a/VisualCard/Parts/Implementations/AddressInfo.cs +++ b/VisualCard/Parts/Implementations/AddressInfo.cs @@ -62,8 +62,8 @@ public class AddressInfo : BaseCardPartInfo, IEquatable /// public string? Country { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new AddressInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new AddressInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{PostOfficeBox}{VcardConstants._fieldDelimiter}" + @@ -74,7 +74,7 @@ internal override string ToStringVcardInternal(Version cardVersion) => $"{PostalCode}{VcardConstants._fieldDelimiter}" + $"{Country}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Get the value string[] splitAdr = value.Split(VcardConstants._fieldDelimiter); @@ -92,7 +92,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert string _addressRegion = Regex.Unescape(splitAdr[4]); string _addressPostalCode = Regex.Unescape(splitAdr[5]); string _addressCountry = Regex.Unescape(splitAdr[6]); - AddressInfo _address = new(altId, property, _addressTypes, valueType, group, _addressPOBox, _addressExtended, _addressStreet, _addressLocality, _addressRegion, _addressPostalCode, _addressCountry); + AddressInfo _address = new(altId, property, _addressTypes, valueType, _addressPOBox, _addressExtended, _addressStreet, _addressLocality, _addressRegion, _addressPostalCode, _addressCountry); return _address; } @@ -162,8 +162,8 @@ internal AddressInfo() : base() { } - internal AddressInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string postOfficeBox, string extendedAddress, string streetAddress, string locality, string region, string postalCode, string country) : - base(property, altId, elementTypes, valueType, group) + internal AddressInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string postOfficeBox, string extendedAddress, string streetAddress, string locality, string region, string postalCode, string country) : + base(property, altId, elementTypes, valueType) { PostOfficeBox = postOfficeBox; ExtendedAddress = extendedAddress; diff --git a/VisualCard/Parts/Implementations/AgentInfo.cs b/VisualCard/Parts/Implementations/AgentInfo.cs index 5b0f543..1bf4899 100644 --- a/VisualCard/Parts/Implementations/AgentInfo.cs +++ b/VisualCard/Parts/Implementations/AgentInfo.cs @@ -39,8 +39,8 @@ public class AgentInfo : BaseCardPartInfo, IEquatable /// public Card[]? AgentCards { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new AgentInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new AgentInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) { @@ -57,7 +57,7 @@ internal override string ToStringVcardInternal(Version cardVersion) return agents.ToString(); } - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Check the provided agent if (string.IsNullOrEmpty(value)) @@ -66,7 +66,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert // Populate the fields string _agentVcard = Regex.Unescape(value).Replace("\\n", "\n").Replace("\\N", "\n"); var _agentVcardParsers = CardTools.GetCardsFromString(_agentVcard); - AgentInfo _agent = new(altId, property, elementTypes, valueType, group, _agentVcardParsers); + AgentInfo _agent = new(altId, property, elementTypes, valueType, _agentVcardParsers); return _agent; } @@ -124,8 +124,8 @@ internal AgentInfo() : base() { } - internal AgentInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, Card[] agentCard) : - base(property, altId, elementTypes, valueType, group) + internal AgentInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, Card[] agentCard) : + base(property, altId, elementTypes, valueType) { AgentCards = agentCard; } diff --git a/VisualCard/Parts/Implementations/AnniversaryInfo.cs b/VisualCard/Parts/Implementations/AnniversaryInfo.cs index b33cf1b..e89363e 100644 --- a/VisualCard/Parts/Implementations/AnniversaryInfo.cs +++ b/VisualCard/Parts/Implementations/AnniversaryInfo.cs @@ -35,19 +35,19 @@ public class AnniversaryInfo : BaseCardPartInfo, IEquatable /// public DateTimeOffset Anniversary { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new AnniversaryInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new AnniversaryInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{VcardCommonTools.SavePosixDate(Anniversary, true)}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Populate the fields DateTimeOffset anniversary = VcardCommonTools.ParsePosixDateTime(value); // Add the fetched information - AnniversaryInfo _time = new(-1, property, [], valueType, group, anniversary); + AnniversaryInfo _time = new(-1, property, [], valueType, anniversary); return _time; } @@ -103,8 +103,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal AnniversaryInfo() { } - internal AnniversaryInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, DateTimeOffset anniversary) : - base(property, altId, elementTypes, valueType, group) + internal AnniversaryInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, DateTimeOffset anniversary) : + base(property, altId, elementTypes, valueType) { Anniversary = anniversary; } diff --git a/VisualCard/Parts/Implementations/BirthDateInfo.cs b/VisualCard/Parts/Implementations/BirthDateInfo.cs index 7a5f82c..2468654 100644 --- a/VisualCard/Parts/Implementations/BirthDateInfo.cs +++ b/VisualCard/Parts/Implementations/BirthDateInfo.cs @@ -35,19 +35,19 @@ public class BirthDateInfo : BaseCardPartInfo, IEquatable /// public DateTimeOffset BirthDate { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new BirthDateInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new BirthDateInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{VcardCommonTools.SavePosixDate(BirthDate, true)}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Populate field DateTimeOffset bday = VcardCommonTools.ParsePosixDateTime(value); // Add the fetched information - BirthDateInfo _time = new(altId, property, elementTypes, valueType, group, bday); + BirthDateInfo _time = new(altId, property, elementTypes, valueType, bday); return _time; } @@ -103,8 +103,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal BirthDateInfo() { } - internal BirthDateInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, DateTimeOffset birth) : - base(property, altId, elementTypes, valueType, group) + internal BirthDateInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, DateTimeOffset birth) : + base(property, altId, elementTypes, valueType) { BirthDate = birth; } diff --git a/VisualCard/Parts/Implementations/CategoryInfo.cs b/VisualCard/Parts/Implementations/CategoryInfo.cs index 5a265b2..0d0f51b 100644 --- a/VisualCard/Parts/Implementations/CategoryInfo.cs +++ b/VisualCard/Parts/Implementations/CategoryInfo.cs @@ -37,19 +37,19 @@ public class CategoryInfo : BaseCardPartInfo, IEquatable /// public string[]? Category { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new CategoryInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new CategoryInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{string.Join(VcardConstants._valueDelimiter.ToString(), Category)}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Populate the fields var categories = Regex.Unescape(value).Split(','); // Add the fetched information - CategoryInfo _time = new(-1, property, elementTypes, valueType, group, categories); + CategoryInfo _time = new(-1, property, elementTypes, valueType, categories); return _time; } @@ -105,8 +105,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal CategoryInfo() { } - internal CategoryInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string[] category) : - base(property, altId, elementTypes, valueType, group) + internal CategoryInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string[] category) : + base(property, altId, elementTypes, valueType) { Category = category; } diff --git a/VisualCard/Parts/Implementations/ClientPidMapInfo.cs b/VisualCard/Parts/Implementations/ClientPidMapInfo.cs index 7825265..5938088 100644 --- a/VisualCard/Parts/Implementations/ClientPidMapInfo.cs +++ b/VisualCard/Parts/Implementations/ClientPidMapInfo.cs @@ -42,13 +42,13 @@ public class ClientPidMapInfo : BaseCardPartInfo, IEquatable /// public string? PidUri { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new ClientPidMapInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new ClientPidMapInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{PidNum};{PidUri ?? ""}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Split the client PID map info if (!value.Contains(";")) @@ -64,7 +64,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert pidUriStr = uri.ToString(); // Populate the fields - ClientPidMapInfo _source = new(altId, property, elementTypes, valueType, group, pidNum, pidUriStr); + ClientPidMapInfo _source = new(altId, property, elementTypes, valueType, pidNum, pidUriStr); return _source; } @@ -122,8 +122,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal ClientPidMapInfo() { } - internal ClientPidMapInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, int pidNum, string pidUri) : - base(property, altId, elementTypes, valueType, group) + internal ClientPidMapInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, int pidNum, string pidUri) : + base(property, altId, elementTypes, valueType) { PidNum = pidNum; PidUri = pidUri; diff --git a/VisualCard/Parts/Implementations/ExtraInfo.cs b/VisualCard/Parts/Implementations/ExtraInfo.cs index f394af8..a7d3eec 100644 --- a/VisualCard/Parts/Implementations/ExtraInfo.cs +++ b/VisualCard/Parts/Implementations/ExtraInfo.cs @@ -41,13 +41,13 @@ public class ExtraInfo : BaseCardPartInfo, IEquatable /// public string[]? Values { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new ExtraInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new ExtraInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => string.Join(VcardConstants._fieldDelimiter.ToString(), Values); - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { string[] split = value.Split(VcardConstants._argumentDelimiter); @@ -58,7 +58,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert // Populate the fields string[] _values = split[1].Split(VcardConstants._fieldDelimiter); - ExtraInfo _extraInfo = new(altId, property, elementTypes, valueType, group, _extra, _values); + ExtraInfo _extraInfo = new(altId, property, elementTypes, valueType, _extra, _values); return _extraInfo; } @@ -116,8 +116,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal ExtraInfo() { } - internal ExtraInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string keyName, string[] values) : - base(property, altId, elementTypes, valueType, group) + internal ExtraInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string keyName, string[] values) : + base(property, altId, elementTypes, valueType) { KeyName = keyName; Values = values; diff --git a/VisualCard/Parts/Implementations/GenderInfo.cs b/VisualCard/Parts/Implementations/GenderInfo.cs index eb71234..3e565f2 100644 --- a/VisualCard/Parts/Implementations/GenderInfo.cs +++ b/VisualCard/Parts/Implementations/GenderInfo.cs @@ -43,14 +43,14 @@ public class GenderInfo : BaseCardPartInfo, IEquatable /// public string? GenderDescription { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new GenderInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new GenderInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => (Gender != Gender.Unspecified ? Gender.ToString()[0] : "") + (!string.IsNullOrEmpty(GenderDescription) ? $"{VcardConstants._fieldDelimiter}{GenderDescription}" : ""); - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Populate field string genderString = value; @@ -79,7 +79,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert }; // Add the fetched information - GenderInfo _gender = new(-1, property, elementTypes, valueType, group, gender, genderDescription); + GenderInfo _gender = new(-1, property, elementTypes, valueType, gender, genderDescription); return _gender; } @@ -137,8 +137,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal GenderInfo() { } - internal GenderInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, Gender gender, string genderDescription) : - base(property, altId, elementTypes, valueType, group) + internal GenderInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, Gender gender, string genderDescription) : + base(property, altId, elementTypes, valueType) { Gender = gender; GenderDescription = genderDescription; diff --git a/VisualCard/Parts/Implementations/KeyInfo.cs b/VisualCard/Parts/Implementations/KeyInfo.cs index 386673e..77aa883 100644 --- a/VisualCard/Parts/Implementations/KeyInfo.cs +++ b/VisualCard/Parts/Implementations/KeyInfo.cs @@ -46,13 +46,13 @@ public class KeyInfo : BaseCardPartInfo, IEquatable public bool IsBlob => VcardCommonTools.IsEncodingBlob(Property?.Arguments, KeyEncoded); - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new KeyInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new KeyInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => KeyEncoded ?? ""; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { bool vCard4 = cardVersion.Major >= 4; @@ -84,7 +84,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert } // Populate the fields - KeyInfo _key = new(altId, property, elementTypes, valueType, group, keyEncoding, value); + KeyInfo _key = new(altId, property, elementTypes, valueType, keyEncoding, value); return _key; } @@ -149,8 +149,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal KeyInfo() { } - internal KeyInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string encoding, string keyEncoded) : - base(property, altId, elementTypes, valueType, group) + internal KeyInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string encoding, string keyEncoded) : + base(property, altId, elementTypes, valueType) { Encoding = encoding; KeyEncoded = keyEncoded; diff --git a/VisualCard/Parts/Implementations/LogoInfo.cs b/VisualCard/Parts/Implementations/LogoInfo.cs index 5e81ee1..717a061 100644 --- a/VisualCard/Parts/Implementations/LogoInfo.cs +++ b/VisualCard/Parts/Implementations/LogoInfo.cs @@ -46,13 +46,13 @@ public class LogoInfo : BaseCardPartInfo, IEquatable public bool IsBlob => VcardCommonTools.IsEncodingBlob(Property?.Arguments ?? [], LogoEncoded); - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new LogoInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new LogoInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => LogoEncoded ?? ""; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { bool vCard4 = cardVersion.Major >= 4; var arguments = property?.Arguments ?? []; @@ -80,7 +80,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert } // Populate the fields - LogoInfo _logo = new(altId, property, elementTypes, valueType, group, logoEncoding, value); + LogoInfo _logo = new(altId, property, elementTypes, valueType, logoEncoding, value); return _logo; } @@ -145,8 +145,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal LogoInfo() { } - internal LogoInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string encoding, string logoEncoded) : - base(property, altId, elementTypes, valueType, group) + internal LogoInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string encoding, string logoEncoded) : + base(property, altId, elementTypes, valueType) { Encoding = encoding; LogoEncoded = logoEncoded; diff --git a/VisualCard/Parts/Implementations/NameInfo.cs b/VisualCard/Parts/Implementations/NameInfo.cs index e66bf37..beb34a7 100644 --- a/VisualCard/Parts/Implementations/NameInfo.cs +++ b/VisualCard/Parts/Implementations/NameInfo.cs @@ -55,8 +55,8 @@ public class NameInfo : BaseCardPartInfo, IEquatable /// public string[]? Suffixes { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new NameInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new NameInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) { @@ -71,7 +71,7 @@ internal override string ToStringVcardInternal(Version cardVersion) $"{suffixesStr}"; } - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { string[] splitName = value.Split(VcardConstants._fieldDelimiter); if (splitName.Length < 2) @@ -83,7 +83,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert string[] _altNames = splitName.Length >= 3 ? Regex.Unescape(splitName[2]).Split(new char[] { VcardConstants._valueDelimiter }, StringSplitOptions.RemoveEmptyEntries) : []; string[] _prefixes = splitName.Length >= 4 ? Regex.Unescape(splitName[3]).Split(new char[] { VcardConstants._valueDelimiter }, StringSplitOptions.RemoveEmptyEntries) : []; string[] _suffixes = splitName.Length >= 5 ? Regex.Unescape(splitName[4]).Split(new char[] { VcardConstants._valueDelimiter }, StringSplitOptions.RemoveEmptyEntries) : []; - NameInfo _name = new(altId, property, elementTypes, valueType, group, _firstName, _lastName, _altNames, _prefixes, _suffixes); + NameInfo _name = new(altId, property, elementTypes, valueType, _firstName, _lastName, _altNames, _prefixes, _suffixes); return _name; } @@ -147,8 +147,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal NameInfo() { } - internal NameInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string contactFirstName, string contactLastName, string[] altNames, string[] prefixes, string[] suffixes) : - base(property, altId, elementTypes, valueType, group) + internal NameInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string contactFirstName, string contactLastName, string[] altNames, string[] prefixes, string[] suffixes) : + base(property, altId, elementTypes, valueType) { ContactFirstName = contactFirstName; ContactLastName = contactLastName; diff --git a/VisualCard/Parts/Implementations/OrganizationInfo.cs b/VisualCard/Parts/Implementations/OrganizationInfo.cs index 5632381..68591e0 100644 --- a/VisualCard/Parts/Implementations/OrganizationInfo.cs +++ b/VisualCard/Parts/Implementations/OrganizationInfo.cs @@ -45,15 +45,15 @@ public class OrganizationInfo : BaseCardPartInfo, IEquatable /// public string? Role { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new OrganizationInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new OrganizationInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{Name}{VcardConstants._fieldDelimiter}" + $"{Unit}{VcardConstants._fieldDelimiter}" + $"{Role}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { string[] splitOrg = value.Split(VcardConstants._fieldDelimiter); @@ -61,7 +61,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert string _orgName = Regex.Unescape(splitOrg[0]); string _orgUnit = Regex.Unescape(splitOrg.Length >= 2 ? splitOrg[1] : ""); string _orgUnitRole = Regex.Unescape(splitOrg.Length >= 3 ? splitOrg[2] : ""); - OrganizationInfo _org = new(altId, property, elementTypes, valueType, group, _orgName, _orgUnit, _orgUnitRole); + OrganizationInfo _org = new(altId, property, elementTypes, valueType, _orgName, _orgUnit, _orgUnitRole); return _org; } @@ -121,8 +121,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal OrganizationInfo() { } - internal OrganizationInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string name, string unit, string role) : - base(property, altId, elementTypes, valueType, group) + internal OrganizationInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string name, string unit, string role) : + base(property, altId, elementTypes, valueType) { Name = name; Unit = unit; diff --git a/VisualCard/Parts/Implementations/PhotoInfo.cs b/VisualCard/Parts/Implementations/PhotoInfo.cs index ac873f7..e317789 100644 --- a/VisualCard/Parts/Implementations/PhotoInfo.cs +++ b/VisualCard/Parts/Implementations/PhotoInfo.cs @@ -46,13 +46,13 @@ public class PhotoInfo : BaseCardPartInfo, IEquatable public bool IsBlob => VcardCommonTools.IsEncodingBlob(Property?.Arguments ?? [], PhotoEncoded); - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new PhotoInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new PhotoInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => PhotoEncoded ?? ""; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { bool vCard4 = cardVersion.Major >= 4; var arguments = property?.Arguments ?? []; @@ -80,7 +80,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert } // Populate the fields - PhotoInfo _photo = new(altId, property, elementTypes, valueType, group, photoEncoding, value); + PhotoInfo _photo = new(altId, property, elementTypes, valueType, photoEncoding, value); return _photo; } @@ -145,8 +145,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal PhotoInfo() { } - internal PhotoInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string encoding, string photoEncoded) : - base(property, altId, elementTypes, valueType, group) + internal PhotoInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string encoding, string photoEncoded) : + base(property, altId, elementTypes, valueType) { Encoding = encoding; PhotoEncoded = photoEncoded; diff --git a/VisualCard/Parts/Implementations/RevisionInfo.cs b/VisualCard/Parts/Implementations/RevisionInfo.cs index ce3fd05..bcf7cd8 100644 --- a/VisualCard/Parts/Implementations/RevisionInfo.cs +++ b/VisualCard/Parts/Implementations/RevisionInfo.cs @@ -35,13 +35,13 @@ public class RevisionInfo : BaseCardPartInfo, IEquatable /// public DateTimeOffset Revision { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new RevisionInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new RevisionInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => $"{VcardCommonTools.SavePosixDate(Revision)}"; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Get the value string revValue = value.Substring(VcardConstants._revSpecifier.Length + 1); @@ -50,7 +50,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert DateTimeOffset rev = VcardCommonTools.ParsePosixDateTime(revValue); // Add the fetched information - RevisionInfo _time = new(altId, property, elementTypes, valueType, group, rev); + RevisionInfo _time = new(altId, property, elementTypes, valueType, rev); return _time; } @@ -106,8 +106,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal RevisionInfo() { } - internal RevisionInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, DateTimeOffset rev) : - base(property, altId, elementTypes, valueType, group) + internal RevisionInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, DateTimeOffset rev) : + base(property, altId, elementTypes, valueType) { Revision = rev; } diff --git a/VisualCard/Parts/Implementations/SoundInfo.cs b/VisualCard/Parts/Implementations/SoundInfo.cs index 9b9cdd7..b09877a 100644 --- a/VisualCard/Parts/Implementations/SoundInfo.cs +++ b/VisualCard/Parts/Implementations/SoundInfo.cs @@ -46,13 +46,13 @@ public class SoundInfo : BaseCardPartInfo, IEquatable public bool IsBlob => VcardCommonTools.IsEncodingBlob(Property?.Arguments ?? [], SoundEncoded); - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new SoundInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new SoundInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => SoundEncoded ?? ""; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { bool vCard4 = cardVersion.Major >= 4; var arguments = property?.Arguments ?? []; @@ -80,7 +80,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert } // Populate the fields - SoundInfo _sound = new(altId, property, elementTypes, valueType, group, soundEncoding, value); + SoundInfo _sound = new(altId, property, elementTypes, valueType, soundEncoding, value); return _sound; } @@ -145,8 +145,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal SoundInfo() { } - internal SoundInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string encoding, string soundEncoded) : - base(property, altId, elementTypes, valueType, group) + internal SoundInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string encoding, string soundEncoded) : + base(property, altId, elementTypes, valueType) { Encoding = encoding; SoundEncoded = soundEncoded; diff --git a/VisualCard/Parts/Implementations/XNameInfo.cs b/VisualCard/Parts/Implementations/XNameInfo.cs index 9ec22ac..66a496a 100644 --- a/VisualCard/Parts/Implementations/XNameInfo.cs +++ b/VisualCard/Parts/Implementations/XNameInfo.cs @@ -41,13 +41,13 @@ public class XNameInfo : BaseCardPartInfo, IEquatable /// public string[]? XValues { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new XNameInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new XNameInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => string.Join(VcardConstants._fieldDelimiter.ToString(), XValues); - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { string xValue = value.Substring(VcardConstants._xSpecifier.Length); string[] splitX = xValue.Split(VcardConstants._argumentDelimiter); @@ -59,7 +59,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert // Populate the fields string[] _xValues = splitX[1].Split(VcardConstants._fieldDelimiter); - XNameInfo _x = new(altId, property, elementTypes, valueType, group, _xName, _xValues); + XNameInfo _x = new(altId, property, elementTypes, valueType, _xName, _xValues); return _x; } @@ -117,8 +117,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal XNameInfo() { } - internal XNameInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, string xKeyName, string[] xValues) : - base(property, altId, elementTypes, valueType, group) + internal XNameInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string xKeyName, string[] xValues) : + base(property, altId, elementTypes, valueType) { XKeyName = xKeyName; XValues = xValues; diff --git a/VisualCard/Parts/Implementations/XmlInfo.cs b/VisualCard/Parts/Implementations/XmlInfo.cs index 654f189..8fc841c 100644 --- a/VisualCard/Parts/Implementations/XmlInfo.cs +++ b/VisualCard/Parts/Implementations/XmlInfo.cs @@ -41,13 +41,13 @@ public class XmlInfo : BaseCardPartInfo, IEquatable /// public string? XmlString { get; } - internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) => - new XmlInfo().FromStringVcardInternal(value, property, altId, elementTypes, group, valueType, cardVersion); + internal static BaseCardPartInfo FromStringVcardStatic(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) => + new XmlInfo().FromStringVcardInternal(value, property, altId, elementTypes, valueType, cardVersion); internal override string ToStringVcardInternal(Version cardVersion) => XmlString ?? ""; - internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string group, string valueType, Version cardVersion) + internal override BaseCardPartInfo FromStringVcardInternal(string value, PropertyInfo property, int altId, string[] elementTypes, string valueType, Version cardVersion) { // Check to see if the XML document is valid or not string finalXml = @@ -61,7 +61,7 @@ internal override BaseCardPartInfo FromStringVcardInternal(string value, Propert doc.LoadXml(finalXml); // Add the fetched information - XmlInfo _xml = new(altId, property, elementTypes, valueType, group, doc, value); + XmlInfo _xml = new(altId, property, elementTypes, valueType, doc, value); return _xml; } @@ -118,8 +118,8 @@ internal override bool EqualsInternal(BaseCardPartInfo source, BaseCardPartInfo internal XmlInfo() { } - internal XmlInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, string group, XmlDocument xml, string xmlString) : - base(property, altId, elementTypes, valueType, group) + internal XmlInfo(int altId, PropertyInfo? property, string[] elementTypes, string valueType, XmlDocument xml, string xmlString) : + base(property, altId, elementTypes, valueType) { Xml = xml; XmlString = xmlString;