Files
Nitrox/Nitrox.Launcher/Models/Validators/SaveNameAttribute.cs
2025-07-06 00:23:46 +02:00

32 lines
811 B
C#

using System;
using System.ComponentModel.DataAnnotations;
namespace Nitrox.Launcher.Models.Validators;
/// <summary>Validates a Nitrox save name.</summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
public class SaveNameAttribute : DataTypeAttribute
{
public SaveNameAttribute() : base(DataType.Text)
{
}
public override bool IsValid(object value)
{
if (value is not string str)
{
return false;
}
int indexOfAny = str.IndexOfAny(FileNameAttribute.InvalidPathCharacters);
if (indexOfAny > -1)
{
return false;
}
if (str.EndsWith(".", StringComparison.OrdinalIgnoreCase))
{
return false;
}
return true;
}
}