using System; using System.Collections.Generic; using System.Globalization; using System.Linq; namespace IRCStates { // ReSharper disable once InconsistentNaming public class ISupportPrefix { /// /// Split the prefix value and add them to our known and /// /// /// public ISupportPrefix(string splitVal) { if (splitVal == null) throw new ArgumentNullException(nameof(splitVal)); var split = splitVal[1..].Split(')', 2); Modes = new List(); Modes.AddRange(split[0].Select(c => c.ToString(CultureInfo.InvariantCulture))); Prefixes = new List(); Prefixes.AddRange(split[1].Select(c => c.ToString(CultureInfo.InvariantCulture))); } public List Modes { get; } public List Prefixes { get; } // ReSharper disable once UnusedMember.Global public string FromMode(char mode) { return FromMode(mode.ToString(CultureInfo.InvariantCulture)); } public string FromMode(string mode) { return Modes.Contains(mode) ? Prefixes[Modes.IndexOf(mode)] : null; } public string FromPrefix(char prefix) { return FromPrefix(prefix.ToString(CultureInfo.InvariantCulture)); } public string FromPrefix(string prefix) { return Prefixes.Contains(prefix) ? Modes[Prefixes.IndexOf(prefix)] : null; } } }