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)); }
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)); }