robokins.IRC.Message.Message C# (CSharp) Method

Message() public method

public Message ( string query ) : System
query string
return System
        public Message(string query)
        {
            if (query.Length > Client.BufferSize || query.Length < (":x!y " + Client.NOTICE + " z :").Length || query[0] != ':')
                throw new ArgumentOutOfRangeException();

            int z;

            // RFC example:
            //   :[email protected] PRIVMSG Wiz :Are you receiving this message ?

            z = query.IndexOf(':', 1);
            if (z == -1)
                throw new ArgumentOutOfRangeException();
            Text = z + 1 >= query.Length ? string.Empty : query.Substring(z + 1);

            string[] values = query.Substring(1, z - 2).Split(' ');

            if (values.Length != 3)
                throw new ArgumentOutOfRangeException();

            User = new User(values[0]);

            switch (values[1].ToUpperInvariant())
            {
                case Client.PRIVMSG:
                    Notice = false;
                    break;
                case Client.NOTICE:
                    Notice = true;
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }

            Target = values[2];
        }