public void MergeFrom(ChatMessage other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Type != 0)
     {
         Type = other.Type;
     }
     if (other.userCredential_ != null)
     {
         if (userCredential_ == null)
         {
             userCredential_ = new global::Chat.Grpc.UserCredential();
         }
         UserCredential.MergeFrom(other.UserCredential);
     }
     if (other.DateTime != 0)
     {
         DateTime = other.DateTime;
     }
     if (other.text_ != null)
     {
         if (text_ == null)
         {
             text_ = new global::Chat.Grpc.TextMessage();
         }
         Text.MergeFrom(other.Text);
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 8: {
                    type_ = (global::Chat.Grpc.ChatMessage.Types.ChatMessageType)input.ReadEnum();
                    break;
                }

                case 18: {
                    if (userCredential_ == null)
                    {
                        userCredential_ = new global::Chat.Grpc.UserCredential();
                    }
                    input.ReadMessage(userCredential_);
                    break;
                }

                case 24: {
                    DateTime = input.ReadUInt32();
                    break;
                }

                case 34: {
                    if (text_ == null)
                    {
                        text_ = new global::Chat.Grpc.TextMessage();
                    }
                    input.ReadMessage(text_);
                    break;
                }
                }
            }
        }