/// <summary> /// Run the activity. /// Get recipient data list (group members) in parallel using fan in/fan out pattern. /// </summary> /// <param name="context">Durable orchestration context.</param> /// <param name="notificationDataEntityId">Notification data entity id.</param> /// <param name="groupMembersPage">group members reference page.</param> /// <param name="pageUrl">grouup members page url.</param> /// <param name="log">Logging service.</param> /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns> public async Task <(IGroupTransitiveMembersCollectionWithReferencesPage, string)> RunAsync( IDurableOrchestrationContext context, string notificationDataEntityId, IGroupTransitiveMembersCollectionWithReferencesPage groupMembersPage, string pageUrl, ILogger log) { var(groupMembersNextPage, nextPageUrl) = await context. CallActivityWithRetryAsync <(IGroupTransitiveMembersCollectionWithReferencesPage, string)>( nameof(GetGroupMembersNextPageActivity.GetGroupMembersNextPageAsync), ActivitySettings.CommonActivityRetryOptions, (groupMembersPage, pageUrl)); // intialize the groupMembers if app installed. // fail the groupMembers if app is not installed. await this.initializeorFailGroupMembersActivity. RunAsync( context, notificationDataEntityId, groupMembersNextPage.OfType <User>(), log); return(groupMembersNextPage, nextPageUrl); }
/// <summary> /// get group members page by next page ur;. /// </summary> /// <param name="groupMembersRef">group members page reference.</param> /// <param name="nextPageUrl">group members next page data link url.</param> /// <returns>group members page.</returns> public async Task <IGroupTransitiveMembersCollectionWithReferencesPage> GetGroupMembersNextPageAsnyc( IGroupTransitiveMembersCollectionWithReferencesPage groupMembersRef, string nextPageUrl) { groupMembersRef.InitializeNextPageRequest(this.graphServiceClient, nextPageUrl); return(await groupMembersRef .NextPageRequest .GetAsync()); }
IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup)> GetNextUsersPageAsync(string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup) { var users = new List <AzureADUser>(); var nonUserGraphObjects = new Dictionary <string, int>(); usersFromGroup = await GetGroupMembersNextPageAsnyc(usersFromGroup, nextPageUrl); TrackMetrics(usersFromGroup.AdditionalData); usersFromGroup.AdditionalData.TryGetValue("@odata.nextLink", out object nextLink2); nextPageUrl = (nextLink2 == null) ? string.Empty : nextLink2.ToString(); users.AddRange(ToUsers(usersFromGroup, nonUserGraphObjects)); return(users, nonUserGraphObjects, nextPageUrl, usersFromGroup); }
public Task <(List <AzureADUser> users, Dictionary <string, int> nonUserGraphObjects, string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup)> GetNextUsersPageAsync(string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup) { throw new NotImplementedException(); }
public Task <IGroupTransitiveMembersCollectionWithReferencesPage> GetGroupMembersNextPageAsnyc(IGroupTransitiveMembersCollectionWithReferencesPage groupMembersRef, string nextPageUrl) { throw new NotImplementedException(); }
IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup)> GetNextUsersPageAsync(string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup) { var result = await _graphGroupRepository.GetNextUsersPageAsync(nextPageUrl, usersFromGroup); return(result); }
public async Task <UsersPageResponse> GetNextMembersPageAsync(string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup, Guid runId) { _graphGroupRepository.RunId = runId; var result = await _graphGroupRepository.GetNextUsersPageAsync(nextPageUrl, usersFromGroup); return(new UsersPageResponse { NextPageUrl = result.nextPageUrl, Members = result.users, NonUserGraphObjects = result.nonUserGraphObjects, MembersPage = result.usersFromGroup }); }
public Task <(List <AzureADUser> users, Dictionary <string, int> nonUserGraphObjects, string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup)> GetNextUsersPageAsync(string nextPageUrl, IGroupTransitiveMembersCollectionWithReferencesPage usersFromGroup) { var users = new List <AzureADUser>(); var nonUserGraphObjects = new Dictionary <string, int>(); return(Task.FromResult((users, nonUserGraphObjects, "", (IGroupTransitiveMembersCollectionWithReferencesPage)null))); }