From 21f1e95fb8e935134a969bc3d729964d8d2aadfa Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Thu, 14 May 2020 23:06:10 -0400 Subject: rename Irc to IRC --- IRCStates/ISupportPrefix.cs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 IRCStates/ISupportPrefix.cs (limited to 'IRCStates/ISupportPrefix.cs') diff --git a/IRCStates/ISupportPrefix.cs b/IRCStates/ISupportPrefix.cs new file mode 100644 index 0000000..35c5344 --- /dev/null +++ b/IRCStates/ISupportPrefix.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; + +namespace IRCStates +{ + public class ISupportPrefix + { + public ISupportPrefix(string splitVal) + { + if (splitVal == null) throw new ArgumentNullException(nameof(splitVal)); + + var split = splitVal.Substring(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; set; } + public List Prefixes { get; set; } + + 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; + } + } +} -- cgit 1.4.1