Beispiel #1
0
        /// <summary>
        /// Get a specific message from the server
        /// </summary>
        /// <param name="item">The message we want to get</param>
        /// <param name="messageFormat">The format of the message to download</param>
        public async Task <YouMailMessage> GetMessageAsync(long item, int imageSize, DataFormat messageFormat)
        {
            try
            {
                AddPendingOp();
                YouMailMessage message = null;
                if (await(LoginWaitAsync()))
                {
                    var query = new YouMailMessageQuery(QueryType.GetMessage)
                    {
                        ImageSize          = imageSize,
                        DataFormat         = messageFormat,
                        IncludePreview     = true,
                        IncludeContactInfo = true,
                        IncludeImageUrl    = true,
                        IncludeExtraInfo   = true
                    };
                    query.AddItemId(item);

                    var results = await ExecuteMessageQueryAsync(query);

                    if (results != null && results.Data != null && results.Data.Length > 0)
                    {
                        message = results.Data[0];
                        if (!string.IsNullOrEmpty(message.Preview))
                        {
                            var uri = string.Format(YMST.c_messageBoxEntryDetails, item);
                            using (var response = await YouMailApiAsync(uri, null, HttpMethod.Get))
                            {
                                var resp = DeserializeObject <YouMailMessageResponse>(response.GetResponseStream());
                                if (resp != null)
                                {
                                    message.Transcription = resp.Message.Transcription;
                                }
                            }
                        }
                    }
                }
                return(message);
            }
            finally
            {
                RemovePendingOp();
            }
        }
Beispiel #2
0
        /// <summary>
        /// Get a specified call
        /// </summary>
        /// <param name="messageId">The message that we want to update</param>
        /// <returns></returns>
        public async Task <YouMailHistory> GetMessageHistoryAsync(long messageId, int imageSize)
        {
            YouMailHistory returnValue = null;

            try
            {
                AddPendingOp();
                if (await LoginWaitAsync())
                {
                    var query = new YouMailMessageQuery(QueryType.GetMessageHistory)
                    {
                        MaxResults         = int.MaxValue,
                        Offset             = 0,
                        IncludeImageUrl    = true,
                        IncludeContactInfo = true,
                        IncludeLocation    = true,
                        ImageSize          = imageSize,
                        Page       = 1,
                        PageLength = s_PageLength
                    };
                    query.AddItemId(messageId);

                    var result = await GetMessageHistoryFromQueryAsync(query);

                    if (result != null && result.Data != null && result.Data.Length > 0)
                    {
                        returnValue = result.Data[0];
                    }
                }
            }
            finally
            {
                RemovePendingOp();
            }

            return(returnValue);
        }