/// <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);
        }
Ejemplo n.º 2
0
 /// <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());
 }
Ejemplo n.º 3
0
                            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)));
        }