public static async Task RemoveChannelMembers(Beta.GraphServiceClient client, string teamid, string channelid, IList <Beta.AadUserConversationMember> members, bool ignoreNotFound, CancellationToken token) { if (members.Count == 0) { return; } Dictionary <string, Func <BatchRequestStep> > requests = new Dictionary <string, Func <BatchRequestStep> >(); foreach (var member in members) { requests.Add(member.Id, () => GraphHelper.GenerateBatchRequestStep(HttpMethod.Delete, member.Id, client.Teams[teamid].Channels[channelid].Members[member.UserId].Request().RequestUrl)); } logger.Trace($"Removing {requests.Count} members in batch request for channel {teamid}:{channelid}"); await GraphHelper.SubmitAsBatches(client, requests, ignoreNotFound, false, token); }
public static async Task RemoveGroupOwners(GraphServiceClient client, string groupid, IList <string> members, bool ignoreNotFound, CancellationToken token) { if (members.Count == 0) { return; } Dictionary <string, Func <BatchRequestStep> > requests = new Dictionary <string, Func <BatchRequestStep> >(); foreach (string member in members) { requests.Add(member, () => GraphHelper.GenerateBatchRequestStep(HttpMethod.Delete, member, client.Groups[groupid].Owners[member].Reference.Request().RequestUrl)); } logger.Trace($"Removing {requests.Count} owners in batch request for group {groupid}"); await GraphHelper.SubmitAsBatches(client, requests, ignoreNotFound, false, token); }
public static async Task AddGroupOwners(GraphServiceClient client, string groupid, IList <string> members, bool ignoreMemberExists, CancellationToken token) { if (members.Count == 0) { return; } Dictionary <string, Func <BatchRequestStep> > requests = new Dictionary <string, Func <BatchRequestStep> >(); foreach (string member in members) { requests.Add(member, () => GraphHelper.GenerateBatchRequestStepJsonContent(HttpMethod.Post, member, client.Groups[groupid].Owners.References.Request().RequestUrl, GraphHelperGroups.GetUserODataId(member))); } logger.Trace($"Adding {requests.Count} owners in batch request for group {groupid}"); await GraphHelper.SubmitAsBatches(client, requests, false, ignoreMemberExists, token); }
public static async Task UpdateChannelMembers(Beta.GraphServiceClient client, string teamid, string channelid, IList <Beta.AadUserConversationMember> members, CancellationToken token) { if (members.Count == 0) { return; } Dictionary <string, Func <BatchRequestStep> > requests = new Dictionary <string, Func <BatchRequestStep> >(); foreach (var member in members) { requests.Add(member.Id, () => GraphHelper.GenerateBatchRequestStepJsonContent(new HttpMethod("PATCH"), member.Id, client.Teams[teamid].Channels[channelid].Members[member.UserId].Request().RequestUrl, JsonConvert.SerializeObject(member))); } logger.Trace($"Adding {requests.Count} members in batch request for channel {teamid}:{channelid}"); await GraphHelper.SubmitAsBatches(client, requests, false, false, token); }
public static async Task AddChannelMembers(Beta.GraphServiceClient client, string teamid, string channelid, IList <Beta.AadUserConversationMember> members, bool ignoreMemberExists, CancellationToken token) { if (members.Count == 0) { return; } Dictionary <string, Func <BatchRequestStep> > requests = new Dictionary <string, Func <BatchRequestStep> >(); foreach (var member in members) { //await GraphHelper.ExecuteWithRetryAndRateLimit(async () => await client.Teams[teamid].Channels[channelid].Members.Request().AddAsync(member, token), token, 1); // logger.Trace(JsonConvert.SerializeObject(member)); requests.Add(member.UserId, () => GraphHelper.GenerateBatchRequestStepJsonContent(HttpMethod.Post, member.UserId, client.Teams[teamid].Channels[channelid].Members.Request().RequestUrl, JsonConvert.SerializeObject(member))); } logger.Trace($"Adding {requests.Count} members in batch request for channel {teamid}:{channelid}"); await GraphHelper.SubmitAsBatches(client, requests, false, ignoreMemberExists, token); }