IRC.Reply.Decode C# (CSharp) Method

Decode() public static method

public static Decode ( string message ) : Reply
message string
return Reply
        public static Reply Decode(string message)
        {
            var reply = new Reply();
            string trailing = string.Empty;
            int prefixEnd = -1;

            if (message.StartsWith(":"))
            {
                prefixEnd = message.IndexOf(' ');
                reply.Prefix = message.Substring(1, prefixEnd - 1);
            }

            int trailingStart = message.IndexOf(" :", StringComparison.Ordinal);
            if (trailingStart >= 0)
                trailing = message.Substring(trailingStart + 2);
            else
                trailingStart = message.Length;

            string[] commandAndParameters = message.Substring(prefixEnd + 1, trailingStart - prefixEnd - 1).Split(' ');
            foreach (var param in commandAndParameters)
            {
                param.Trim();
            }

            reply.Command = commandAndParameters.First();

            if (commandAndParameters.Length > 1)
                reply.Params = commandAndParameters.Skip(1).ToList();

            reply.Trailing = trailing.Trim();

            return reply;
        }