private T DoExecute <T>(IDingTalkRequest <T> request, string session, DateTime timestamp) where T : DingTalkResponse
 {
     if (request.GetApiCallType() == null || request.GetApiCallType().Equals(DingTalkConstants.CALL_TYPE_TOP))
     {
         return(DoExecuteTop(request, session, timestamp));
     }
     else
     {
         return(DoExecuteOApi(request, session, null, null, null, null, timestamp));
     }
 }
 public T Execute <T>(IDingTalkRequest <T> request, string accessKey, string accessSecret, string suiteTicket, string corpId) where T : DingTalkResponse
 {
     if (request.GetApiCallType() == null || request.GetApiCallType().Equals(DingTalkConstants.CALL_TYPE_TOP))
     {
         return(DoExecuteTop(request, null, DateTime.Now));
     }
     else
     {
         return(DoExecuteOApi(request, null, accessKey, accessSecret, suiteTicket, corpId, DateTime.Now));
     }
 }