// Copyright (C) Stichting Deltares 2025. All rights reserved.
//
// This file is part of the Dam Engine.
//
// The Dam Engine is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
//
// All names, logos, and references to "Deltares" are registered trademarks of
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
using System.Text.RegularExpressions;
namespace Deltares.DamEngine.Io;
/// Validator for Id names
public static class IdValidator
{
/// Checks if Id contains only valid characters
/// Valid characters are (between quotes):
/// "ABCDEFGHIJKLMNOPQRSTUVWXYZ" // Specified as "A-Z"
/// "abcdefghijklmnopqrstuvwxyz" // Specified as "a-z"
/// "01234567879" // Specified as "0-9"
/// "!#$%&()*+,-./" // Specified as "!#-/"
/// ":;<=>?@" // Specified as ":-@"
/// "[\]^_`" // Specified as "[-`"
/// "{|}~ " // Specified as "{-~ "
/// " " // Specified as "\s"
/// Name to check
static public bool IsCorrectName(string name)
{
var regex = new Regex(@"[^A-Za-z0-9!#-/:-@[-`{-~\s]");
return !regex.IsMatch(name);
}
}