public Swagger.Message GetMessage(Guid threadId, Guid messageId, AdditionalMessageDataOptions additionalMessageDataOptions)
        {
            var c = new Swagger.MessageClient();

            Log?.Invoke($"GetMessage: threadId={threadId}, messageId={messageId}");
            try
            {
                return(c.GetAsync(threadId, messageId).Result);
            }
            catch (AggregateException ae)
            {
                LogExp?.Invoke("GetMessage", ae.InnerException);
                throw ae.InnerException;
            }
        }
        public Swagger.Content GetThread(Guid threadId, AdditionalMessageDataOptions additionalMessageDataOptions)
        {
            var c = new Swagger.ThreadsClient();

            Log?.Invoke($"GetThread: threadId={threadId}");
            try
            {
                return(c.GetAsyncAsync(threadId).Result);
            }
            catch (AggregateException ae)
            {
                LogExp?.Invoke("GetThread", ae.InnerException);
                throw ae.InnerException;
                throw;
            }
        }
        public Swagger.PagedResultOfIResource GetMessageListByThreadId(Guid threadId, MessageSortOrder?sortOrder, SortDirection?sortDir, int startRow, int maxRows, AdditionalMessageDataOptions additionalMessageDataOptions)
        {
            var c = new Swagger.MessageClient();

            try
            {
                Log?.Invoke($"GetMessageListByThreadId: threadId={threadId}");
                var res = c.GetListAsync(threadId, null, startRow - 1, maxRows, null, Swagger.Direction._0).Result;
                return(res);
            }
            catch (AggregateException ae)
            {
                LogExp?.Invoke($"AEXP: GetMessageListByThreadId: threadId={threadId}", ae.InnerException);
            }
            catch (Exception exp)
            {
                LogExp?.Invoke($"EXP: GetMessageListByThreadId: threadId={threadId}", exp);
            }

            var res3 = new Swagger.PagedResultOfIResource();

            return(res3);
        }