示例#1
0
        /// <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();
            }
        }
示例#2
0
 /// <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);
     }
 }
示例#3
0
 public YouMailException(
     string message,
     YouMailResponse response,
     HttpStatusCode statusCode,
     Exception innerException)
     : base(message, innerException)
 {
     Response   = response;
     StatusCode = statusCode;
 }
示例#4
0
        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);
        }
示例#5
0
 /// <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);
 }
示例#6
0
        /// <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);
        }