Ejemplo n.º 1
0
        public async Task <IList <Message> > GetAsync(string userId, FilterConditions filterConditions)
        {
            StringBuilder urlBuilder = new StringBuilder($"users/{userId}/");

            switch (filterConditions.Folder)
            {
            case Folder.All:
                urlBuilder.Append($"messages");
                break;

            case Folder.DeletedItems:
                urlBuilder.Append($"mailFolders('DeletedItems')/messages");
                break;

            case Folder.Drafts:
                urlBuilder.Append($"mailFolders('Drafts')/messages");
                break;

            case Folder.Inbox:
                urlBuilder.Append($"mailFolders('Inbox')/messages");
                break;

            case Folder.SentItems:
                urlBuilder.Append($"mailFolders('SentItems')/messages");
                break;
            }

            if (!string.IsNullOrEmpty(filterConditions.ConversationId))
            {
                urlBuilder.Append($"?$filter=conversationId%20eq%20'{filterConditions.ConversationId}'&$top={filterConditions.Top}");
            }
            else if (!string.IsNullOrEmpty(filterConditions.SearchText))
            {
                urlBuilder.Append($"?$search=\"{filterConditions.SearchText}\"&$top={filterConditions.Top}");
            }
            else if (filterConditions.Unread.HasValue)
            {
                urlBuilder.Append($"?$filter=isRead eq {!filterConditions.Unread.Value} And ReceivedDateTime ge {filterConditions.LastReceivedDateTime} ");
            }
            else if (!string.IsNullOrEmpty(filterConditions.LastReceivedDateTime))
            {
                urlBuilder.Append($"?$filter= ReceivedDateTime ge {filterConditions.LastReceivedDateTime}");
            }
            else
            {
                urlBuilder.Append($"?$count={filterConditions.Count.ToString().ToLower()}");
                urlBuilder.Append($"&$orderby={filterConditions.OrderBy.GetEnumDescription()}");
                urlBuilder.Append($"&$skip={filterConditions.Skip}");
                urlBuilder.Append($"&$top={filterConditions.Top}");
            }

            urlBuilder.Append($"&$expand=attachments($select=id,lastModifiedDateTime,name,contentType,size)");

            return(await _call.GetAsync <IList <Message> >(urlBuilder.ToString()).ConfigureAwait(false));
        }
 public async Task <IList <FileAttachment> > GetAsync(string userId, string messageId)
 {
     return(await _call.GetAsync <IList <FileAttachment> >($"users/{userId}/messages/{messageId}/attachments").ConfigureAwait(false));
 }
Ejemplo n.º 3
0
 public async Task <List <Subscription> > GetAsync()
 {
     return(await _call.GetAsync <List <Subscription> >("subscriptions").ConfigureAwait(false));
 }
 public async Task <IList <User> > ListUsersAsync()
 {
     return(await _call.GetAsync <IList <User> >($"users").ConfigureAwait(false));
 }
 public async Task <OpenTypeExtensionResponse> GetAsync(string userId, string messageId)
 {
     return(await _call.GetAsync <OpenTypeExtensionResponse>($"users/{userId}/messages/{messageId}/extensions/com.homegenius").ConfigureAwait(false));
 }