public static async Task SendToIndexManager(RecalcIndivTokens recalcTokens, IOrderDataAccess dataAccess,
                                                    ISendEndpointProvider sendEndpointProvider, Uri uri)
        {
            var indivTokens = await dataAccess.GetIndividualAccessTokens(recalcTokens.ArchiveRecordId);

            // Mix the existing tokens with the indiv tokens
            var download = recalcTokens.ExistingPrimaryDataDownloadAccessTokens.Where(IsNotIndivToken)
                           .Union(indivTokens.PrimaryDataDownloadAccessTokens).Distinct().ToArray();
            var fulltext = recalcTokens.ExistingPrimaryDataFulltextAccessTokens.Where(IsNotIndivToken)
                           .Union(indivTokens.PrimaryDataFulltextAccessTokens).Distinct().ToArray();
            var metadata = recalcTokens.ExistingMetadataAccessTokens.Where(IsNotIndivToken).Union(indivTokens.MetadataAccessTokens).Distinct()
                           .ToArray();


            var ep = await sendEndpointProvider.GetSendEndpoint(new Uri(uri, BusConstants.IndexManagerUpdateIndivTokensMessageQueue));

            await ep.Send(new UpdateIndivTokens
            {
                ArchiveRecordId = recalcTokens.ArchiveRecordId,
                CombinedPrimaryDataFulltextAccessTokens = fulltext,
                CombinedPrimaryDataDownloadAccessTokens = download,
                CombinedMetadataAccessTokens            = metadata
            });
        }