public override int GetHashCode()
        {
            int hash = 1;

            if (Id != 0)
            {
                hash ^= Id.GetHashCode();
            }
            if (OuterId != 0)
            {
                hash ^= OuterId.GetHashCode();
            }
            if (TypeName.Length != 0)
            {
                hash ^= TypeName.GetHashCode();
            }
            if (Message.Length != 0)
            {
                hash ^= Message.GetHashCode();
            }
            if (hasFullStack_ != null)
            {
                hash ^= HasFullStack.GetHashCode();
            }
            if (Stack.Length != 0)
            {
                hash ^= Stack.GetHashCode();
            }
            hash ^= parsedStack_.GetHashCode();
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
        private void Validate(string tagStr)
        {
            if (DisplayName?.Length > 256 || DisplayName?.IndexOfAny("^@,&=*'\"".ToCharArray()) > -1)
            {
                throw new ArgumentException(
                          $"Property {nameof(DisplayName)} must be less than 256 characters, and must not contain characters ^@,&=*'\"");
            }


            if (OuterId?.Length > 255 || OuterId?.IndexOfAny("^@,&=*'\"".ToCharArray()) > -1)
            {
                throw new ArgumentException(
                          $"Property {nameof(OuterId)} must be less than 255 characters, and must not contain characters ^@,&=*'\"");
            }


            if (tagStr?.Length > 255 || tagStr?.IndexOfAny("^@,&=*'\"".ToCharArray()) > -1)
            {
                throw new ArgumentException(
                          $"Property {nameof(Tags)} must be less than 255 characters, and must not contain characters ^@,&=*'\"");
            }

            if (FaceTokens?.Count > 5)
            {
                throw new ArgumentException($"Property {nameof(FaceTokens)} must contain less then 5 string");
            }

            if (UserData?.Length * sizeof(char) > 16 * 1024 || UserData?.IndexOfAny("^@,&=*'\"".ToCharArray()) > -1)
            {
                throw new ArgumentException(
                          $"Property {nameof(DisplayName)} must be less than 16KB, and must not contain characters ^@,&=*'\"");
            }
        }