/// <summary> /// /// </summary> /// <param name="name"></param> /// <param name="description"></param> /// <param name="waveData"></param> public async Task <YouMailResponse> CreateGreetingAsync(string name, string description, byte[] waveData) { try { YouMailResponse youmailResponse = null; AddPendingOp(); if (await LoginWaitAsync()) { var greeting = new YouMailGreeting { Name = name, Description = description, AudioData = Convert.ToBase64String(waveData) }; using (var response = await YouMailApiAsync(YMST.c_createGreeting, SerializeObjectToHttpContent(greeting, YMST.c_greeting), HttpMethod.Post)) { youmailResponse = DeserializeObject <YouMailResponse>(response.GetResponseStream()); } } return(youmailResponse); } finally { RemovePendingOp(); } }
/// <summary> /// Throws an exception if the API call failed /// </summary> /// <param name="responseMessage">The ResponseMessage returned from the API</param> private void EnsureYouMailResponse(HttpResponseMessage responseMessage) { if (!responseMessage.IsSuccessStatusCode) { string message = null; YouMailResponse apiError = null; var messageStream = responseMessage.GetResponseStream(); if (messageStream != null) { try { apiError = DeserializeObject <YouMailResponse>(messageStream); message = apiError.GetErrorMessage(); if (message == null) { message = apiError.LongMessage; } } catch { } } throw new YouMailException(message, apiError, responseMessage.StatusCode, null); } }
public YouMailException( string message, YouMailResponse response, HttpStatusCode statusCode, Exception innerException) : base(message, innerException) { Response = response; StatusCode = statusCode; }
public async Task <YouMailResponse> CreateMessageEntryAsync(YouMailMessageCreateEntry message) { YouMailResponse youmailResponse = null; try { AddPendingOp(); if (await LoginWaitAsync()) { using (var response = await YouMailApiAsync(YMST.c_messageBoxEntryCreate, SerializeObjectToHttpContent(message, YMST.c_entry), HttpMethod.Post)) { youmailResponse = DeserializeObject <YouMailResponse>(response.GetResponseStream()); } } } finally { RemovePendingOp(); } return(youmailResponse); }
/// <summary> /// Convert a WebException into a YouMailException /// </summary> /// <param name="e"></param> /// <returns></returns> private YouMailException ConvertException(WebException e) { if (e is WebException) { WebException we = e as WebException; if (we.Response is HttpWebResponse) { var webResponse = we.Response as HttpWebResponse; var s = webResponse.GetResponseStream(); YouMailResponse error = null; try { error = DeserializeObject <YouMailResponse>(s); return(new YouMailException(error.GetErrorMessage(), error, webResponse.StatusCode, e)); } catch { } } } return(null); }
/// <summary> /// Get the Account registration information to see if an account exists /// </summary> /// <param name="phoneNumber">The account to lookup</param> /// <returns>YouMailCustomResponse</returns> public async Task <YouMailResponse> AccountRegistrationVerificationAsync(string phoneNumber) { YouMailResponse youmailResponse = null; try { AddPendingOp(); if (await(LoginWaitAsync())) { string url = string.Format(YMST.c_registrationVerify, phoneNumber); using (var response = await YouMailApiAsync(url, null, HttpMethod.Get)) { youmailResponse = DeserializeObject <YouMailResponse>(response.GetResponseStream()); } } } finally { RemovePendingOp(); } return(youmailResponse); }