public static async Task <MailFolder> EnsureFolder(this IUserRequestBuilder userRequestBuilder, string parentFolderId, string folderName) { if (userRequestBuilder is null) { throw new ArgumentNullException(nameof(userRequestBuilder)); } var invalidMessagesFolderResults = await userRequestBuilder .MailFolders[parentFolderId] .ChildFolders .Request() .Filter($"displayName eq '{folderName}'") .GetAsync(); if (invalidMessagesFolderResults.CurrentPage.Count > 0) { return(invalidMessagesFolderResults[0]); } else { var newFolder = await userRequestBuilder .MailFolders[parentFolderId] .ChildFolders .Request() .AddAsync(new MailFolder() { DisplayName = folderName }); return(newFolder); } }
/// <summary> /// Set UsageLocation field. It's required when adding maibox rule. /// </summary> /// <param name="user">Current instance of user</param> private void UpdateUser(IUserRequestBuilder user) { user.Request().UpdateAsync(new User { UsageLocation = "US" }).Wait(); }
public async Task <User> FindUserByUpn(string upn, CancellationToken token) { //string request = client.BaseUrl + $"/users/{upn}"; IUserRequestBuilder urb = client.Users[upn]; //new UserRequestBuilder(request, client); try { User user = await urb.Request().GetAsync(token); return(user); } catch { return(null); } }
public async Task <User> FindUserById(string id, CancellationToken token) { IUserRequestBuilder urb = client.Users[id]; try { User user = await urb.Request().GetAsync(token); return(user); } catch (Exception) { // expected if we are expanding a group and looking for users but this is a group } return(default(User)); }
public async Task <Message> Send(Message mail, string mailboxOrUserId = null, string scope = "profile") { // use scopes: mail.send, mail.readwrite.shared GraphServiceClient client = await tokenService.GetClientForUser(new string[] { scope }); IUserRequestBuilder userRequestBuilder = string.IsNullOrWhiteSpace(mailboxOrUserId) ? client.Me : client.Users[mailboxOrUserId]; Message draft = await userRequestBuilder .MailFolders .Drafts .Messages .Request(new List <HeaderOption>() { new HeaderOption("Prefer", "IdType=\"ImmutableId\"") }) .AddAsync(mail); await userRequestBuilder.Messages[draft.Id].Send().Request().PostAsync(); Message msg = await userRequestBuilder.Messages[draft.Id].Request().GetAsync(); return(msg); }
public static async Task <MailFolder> EnsureFolder(this IUserRequestBuilder userRequestBuilder, MailFolder parentFolder, string folderName) => await EnsureFolder(userRequestBuilder, parentFolder?.Id, folderName);
public static IUserMailboxSettingsRequestBuilder MailboxSettings(this IUserRequestBuilder builder) { return(new UserMailboxSettingsRequestBuilder(builder.AppendSegmentToRequestUrl("mailboxSettings"), builder.Client)); }