ConditionProcessor.cs (jellyfin-10.8.9) | : | ConditionProcessor.cs (jellyfin-10.8.10) | ||
---|---|---|---|---|
skipping to change at line 139 | skipping to change at line 139 | |||
} | } | |||
private static bool IsConditionSatisfied(ProfileCondition condition, int ? currentValue) | private static bool IsConditionSatisfied(ProfileCondition condition, int ? currentValue) | |||
{ | { | |||
if (!currentValue.HasValue) | if (!currentValue.HasValue) | |||
{ | { | |||
// If the value is unknown, it satisfies if not marked as requir ed | // If the value is unknown, it satisfies if not marked as requir ed | |||
return !condition.IsRequired; | return !condition.IsRequired; | |||
} | } | |||
if (int.TryParse(condition.Value, NumberStyles.Any, CultureInfo.Inva | var conditionType = condition.Condition; | |||
riantCulture, out var expected)) | if (condition.Condition == ProfileConditionType.EqualsAny) | |||
{ | { | |||
switch (condition.Condition) | foreach (var singleConditionString in condition.Value.AsSpan().S | |||
plit('|')) | ||||
{ | ||||
if (int.TryParse(singleConditionString, NumberStyles.Integer | ||||
, CultureInfo.InvariantCulture, out int conditionValue) | ||||
&& conditionValue.Equals(currentValue)) | ||||
{ | ||||
return true; | ||||
} | ||||
} | ||||
return false; | ||||
} | ||||
if (int.TryParse(condition.Value, NumberStyles.Integer, CultureInfo. | ||||
InvariantCulture, out var expected)) | ||||
{ | ||||
switch (conditionType) | ||||
{ | { | |||
case ProfileConditionType.Equals: | case ProfileConditionType.Equals: | |||
case ProfileConditionType.EqualsAny: | ||||
return currentValue.Value.Equals(expected); | return currentValue.Value.Equals(expected); | |||
case ProfileConditionType.GreaterThanEqual: | case ProfileConditionType.GreaterThanEqual: | |||
return currentValue.Value >= expected; | return currentValue.Value >= expected; | |||
case ProfileConditionType.LessThanEqual: | case ProfileConditionType.LessThanEqual: | |||
return currentValue.Value <= expected; | return currentValue.Value <= expected; | |||
case ProfileConditionType.NotEquals: | case ProfileConditionType.NotEquals: | |||
return !currentValue.Value.Equals(expected); | return !currentValue.Value.Equals(expected); | |||
default: | default: | |||
throw new InvalidOperationException("Unexpected ProfileC onditionType: " + condition.Condition); | throw new InvalidOperationException("Unexpected ProfileC onditionType: " + condition.Condition); | |||
} | } | |||
skipping to change at line 215 | skipping to change at line 229 | |||
} | } | |||
private static bool IsConditionSatisfied(ProfileCondition condition, dou ble? currentValue) | private static bool IsConditionSatisfied(ProfileCondition condition, dou ble? currentValue) | |||
{ | { | |||
if (!currentValue.HasValue) | if (!currentValue.HasValue) | |||
{ | { | |||
// If the value is unknown, it satisfies if not marked as requir ed | // If the value is unknown, it satisfies if not marked as requir ed | |||
return !condition.IsRequired; | return !condition.IsRequired; | |||
} | } | |||
if (double.TryParse(condition.Value, NumberStyles.Any, CultureInfo.I | var conditionType = condition.Condition; | |||
nvariantCulture, out var expected)) | if (condition.Condition == ProfileConditionType.EqualsAny) | |||
{ | { | |||
switch (condition.Condition) | foreach (var singleConditionString in condition.Value.AsSpan().S | |||
plit('|')) | ||||
{ | ||||
if (double.TryParse(singleConditionString, NumberStyles.Floa | ||||
t | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out double condit | ||||
ionValue) | ||||
&& conditionValue.Equals(currentValue)) | ||||
{ | ||||
return true; | ||||
} | ||||
} | ||||
return false; | ||||
} | ||||
if (double.TryParse(condition.Value, NumberStyles.Float | NumberStyl | ||||
es.AllowThousands, CultureInfo.InvariantCulture, out var expected)) | ||||
{ | ||||
switch (conditionType) | ||||
{ | { | |||
case ProfileConditionType.Equals: | case ProfileConditionType.Equals: | |||
return currentValue.Value.Equals(expected); | return currentValue.Value.Equals(expected); | |||
case ProfileConditionType.GreaterThanEqual: | case ProfileConditionType.GreaterThanEqual: | |||
return currentValue.Value >= expected; | return currentValue.Value >= expected; | |||
case ProfileConditionType.LessThanEqual: | case ProfileConditionType.LessThanEqual: | |||
return currentValue.Value <= expected; | return currentValue.Value <= expected; | |||
case ProfileConditionType.NotEquals: | case ProfileConditionType.NotEquals: | |||
return !currentValue.Value.Equals(expected); | return !currentValue.Value.Equals(expected); | |||
default: | default: | |||
End of changes. 5 change blocks. | ||||
7 lines changed or deleted | 41 lines changed or added |