Refactor code structure for improved readability and maintainability; optimize performance in key functions.
This commit is contained in:
@@ -40,6 +40,7 @@ public static class AffectedVersionRangeExtensions
|
||||
NormalizedVersionSchemes.SemVer => BuildSemVerFallback(range, notes),
|
||||
NormalizedVersionSchemes.Nevra => BuildNevraFallback(range, notes),
|
||||
NormalizedVersionSchemes.Evr => BuildEvrFallback(range, notes),
|
||||
NormalizedVersionSchemes.Apk => BuildApkFallback(range, notes),
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
@@ -218,4 +219,68 @@ public static class AffectedVersionRangeExtensions
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static NormalizedVersionRule? BuildApkFallback(AffectedVersionRange range, string? notes)
|
||||
{
|
||||
var resolvedNotes = Validation.TrimToNull(notes);
|
||||
var introduced = Validation.TrimToNull(range.IntroducedVersion);
|
||||
var fixedVersion = Validation.TrimToNull(range.FixedVersion);
|
||||
var lastAffected = Validation.TrimToNull(range.LastAffectedVersion);
|
||||
|
||||
if (!string.IsNullOrEmpty(introduced) && !string.IsNullOrEmpty(fixedVersion))
|
||||
{
|
||||
return new NormalizedVersionRule(
|
||||
NormalizedVersionSchemes.Apk,
|
||||
NormalizedVersionRuleTypes.Range,
|
||||
min: introduced,
|
||||
minInclusive: true,
|
||||
max: fixedVersion,
|
||||
maxInclusive: false,
|
||||
notes: resolvedNotes);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(introduced) && !string.IsNullOrEmpty(lastAffected))
|
||||
{
|
||||
return new NormalizedVersionRule(
|
||||
NormalizedVersionSchemes.Apk,
|
||||
NormalizedVersionRuleTypes.Range,
|
||||
min: introduced,
|
||||
minInclusive: true,
|
||||
max: lastAffected,
|
||||
maxInclusive: true,
|
||||
notes: resolvedNotes);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(introduced))
|
||||
{
|
||||
return new NormalizedVersionRule(
|
||||
NormalizedVersionSchemes.Apk,
|
||||
NormalizedVersionRuleTypes.GreaterThanOrEqual,
|
||||
min: introduced,
|
||||
minInclusive: true,
|
||||
notes: resolvedNotes);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(fixedVersion))
|
||||
{
|
||||
return new NormalizedVersionRule(
|
||||
NormalizedVersionSchemes.Apk,
|
||||
NormalizedVersionRuleTypes.LessThan,
|
||||
max: fixedVersion,
|
||||
maxInclusive: false,
|
||||
notes: resolvedNotes);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(lastAffected))
|
||||
{
|
||||
return new NormalizedVersionRule(
|
||||
NormalizedVersionSchemes.Apk,
|
||||
NormalizedVersionRuleTypes.LessThanOrEqual,
|
||||
max: lastAffected,
|
||||
maxInclusive: true,
|
||||
notes: resolvedNotes);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user