internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vx_req_account_archive_query_t obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
public IAsyncResult BeginAccountArchiveQuery(DateTime?timeStart, DateTime?timeEnd, string searchText, AccountId userId, ChannelId channel, uint max, string afterId, string beforeId, int firstMessageIndex, AsyncCallback callback) { AssertLoggedIn(); if (userId != null && channel != null) { throw new ArgumentException($"{GetType().Name}: Parameters {nameof(userId)} and {nameof(channel)} cannot be used at the same time"); } if (afterId != null && beforeId != null) { throw new ArgumentException($"{GetType().Name}: Parameters {nameof(afterId)} and {nameof(beforeId)} cannot be used at the same time"); } if (max > 50) { throw new ArgumentException($"{GetType().Name}: {nameof(max)} cannot be greater than 50"); } var ar = new AsyncNoResult(callback); var request = new vx_req_account_archive_query_t { account_handle = _accountHandle, max = max, after_id = afterId, before_id = beforeId, first_message_index = firstMessageIndex }; if (timeStart != null && timeStart != DateTime.MinValue) { request.time_start = timeStart?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); } if (timeEnd != null && timeEnd != DateTime.MaxValue) { request.time_end = timeEnd?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); } request.search_text = searchText; if (userId != null) { request.participant_uri = userId.ToString(); } else if (channel != null) { request.participant_uri = channel.ToString(); } VxClient.Instance.BeginIssueRequest(request, result => { vx_resp_account_archive_query_t response; try { response = VxClient.Instance.EndIssueRequest(result); _accountArchiveResult = new ArchiveQueryResult(response.query_id); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AccountArchiveResult))); ar.SetComplete(); } catch (Exception e) { VivoxDebug.Instance.VxExceptionMessage($"{request.GetType().Name} failed: {e}"); ar.SetComplete(e); if (VivoxDebug.Instance.throwInternalExcepetions) { throw; } return; } }); return(ar); }