j64.AlarmServer.TpiResponse.Parse C# (CSharp) Метод

Parse() приватный Метод

private Parse ( string data ) : void
data string
Результат void
        private void Parse(string data)
        {

            if (data == null)
            {
                data = "";
            }
            data = data.Replace("\0", "");
            //check if it's prefixed with date:
            if (data.Length > 9)
            {
                int number;
                Int32.TryParse(data.Substring(0, 1), out number);
                if (number > -1)
                {
                    //prefixed with date.
                    var date = data.Substring(0, 8);

                    DateTime tmp;
                    if (DateTime.TryParse(date, out tmp))
                    {
                        data = data.Substring(9); // remove date + space
                        Date = tmp;
                    }
                    else
                    {
                        Date = DateTime.Now;
                    }
                }
                else
                {
                    Date = DateTime.Now;
                }
            }
            else
                Date = DateTime.Now;

            //get ResponseEnum.
            ResponseCommand command;
            Enum.TryParse(data.Substring(0, CommandSize), out command);

            var numBytes = command.GetNumberOfBytes();

            var payload = ""; // can be 0-length

            if (numBytes > 0)
                payload = data.Substring(CommandSize, numBytes);

            var checksum = data.Substring(CommandSize + numBytes, ChecksumSize);

            if (!CheckSumHelper.VerifyChecksum(command, payload, checksum))
            {
                throw new Exception("Wrong checksum in response detected.");
            }

            Command = command;
            Data = payload;
        }