public AuthenticationResult recv_completeTwoFactorAuthentication()
 {
   TMessage msg = iprot_.ReadMessageBegin();
   if (msg.Type == TMessageType.Exception) {
     TApplicationException x = TApplicationException.Read(iprot_);
     iprot_.ReadMessageEnd();
     throw x;
   }
   completeTwoFactorAuthentication_result result = new completeTwoFactorAuthentication_result();
   result.Read(iprot_);
   iprot_.ReadMessageEnd();
   if (result.__isset.success) {
     return result.Success;
   }
   if (result.__isset.userException) {
     throw result.UserException;
   }
   if (result.__isset.systemException) {
     throw result.SystemException;
   }
   throw new TApplicationException(TApplicationException.ExceptionType.MissingResult, "completeTwoFactorAuthentication failed: unknown result");
 }
 public void completeTwoFactorAuthentication_Process(int seqid, TProtocol iprot, TProtocol oprot)
 {
   completeTwoFactorAuthentication_args args = new completeTwoFactorAuthentication_args();
   args.Read(iprot);
   iprot.ReadMessageEnd();
   completeTwoFactorAuthentication_result result = new completeTwoFactorAuthentication_result();
   try {
     result.Success = iface_.completeTwoFactorAuthentication(args.AuthenticationToken, args.OneTimeCode, args.DeviceIdentifier, args.DeviceDescription);
   } catch (Evernote.EDAM.Error.EDAMUserException userException) {
     result.UserException = userException;
   } catch (Evernote.EDAM.Error.EDAMSystemException systemException) {
     result.SystemException = systemException;
   }
   oprot.WriteMessageBegin(new TMessage("completeTwoFactorAuthentication", TMessageType.Reply, seqid)); 
   result.Write(oprot);
   oprot.WriteMessageEnd();
   oprot.Transport.Flush();
 }