public void Write(TProtocol oprot)
 {
     oprot.IncrementRecursionDepth();
     try
     {
         TStruct struc = new TStruct("Identity");
         oprot.WriteStructBegin(struc);
         TField field = new TField();
         field.Name = "id";
         field.Type = TType.I64;
         field.ID   = 1;
         oprot.WriteFieldBegin(field);
         oprot.WriteI64(Id);
         oprot.WriteFieldEnd();
         if (Contact != null && __isset.contact)
         {
             field.Name = "contact";
             field.Type = TType.Struct;
             field.ID   = 2;
             oprot.WriteFieldBegin(field);
             Contact.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (__isset.userId)
         {
             field.Name = "userId";
             field.Type = TType.I32;
             field.ID   = 3;
             oprot.WriteFieldBegin(field);
             oprot.WriteI32(UserId);
             oprot.WriteFieldEnd();
         }
         if (__isset.deactivated)
         {
             field.Name = "deactivated";
             field.Type = TType.Bool;
             field.ID   = 4;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(Deactivated);
             oprot.WriteFieldEnd();
         }
         if (__isset.sameBusiness)
         {
             field.Name = "sameBusiness";
             field.Type = TType.Bool;
             field.ID   = 5;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(SameBusiness);
             oprot.WriteFieldEnd();
         }
         if (__isset.blocked)
         {
             field.Name = "blocked";
             field.Type = TType.Bool;
             field.ID   = 6;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(Blocked);
             oprot.WriteFieldEnd();
         }
         if (__isset.userConnected)
         {
             field.Name = "userConnected";
             field.Type = TType.Bool;
             field.ID   = 7;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(UserConnected);
             oprot.WriteFieldEnd();
         }
         if (__isset.eventId)
         {
             field.Name = "eventId";
             field.Type = TType.I64;
             field.ID   = 8;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(EventId);
             oprot.WriteFieldEnd();
         }
         oprot.WriteFieldStop();
         oprot.WriteStructEnd();
     }
     finally
     {
         oprot.DecrementRecursionDepth();
     }
 }
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                bool   isset_id = false;
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.I64)
                        {
                            Id       = iprot.ReadI64();
                            isset_id = true;
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.Struct)
                        {
                            Contact = new Contact();
                            Contact.Read(iprot);
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.I32)
                        {
                            UserId = iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Bool)
                        {
                            Deactivated = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 5:
                        if (field.Type == TType.Bool)
                        {
                            SameBusiness = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 6:
                        if (field.Type == TType.Bool)
                        {
                            Blocked = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 7:
                        if (field.Type == TType.Bool)
                        {
                            UserConnected = iprot.ReadBool();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 8:
                        if (field.Type == TType.I64)
                        {
                            EventId = iprot.ReadI64();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
                if (!isset_id)
                {
                    throw new TProtocolException(TProtocolException.INVALID_DATA, "required field Id not set");
                }
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }