// Token: 0x060014F1 RID: 5361 RVA: 0x00078148 File Offset: 0x00076348
        private void SendSignalsForMailbox(MailboxSession session, ILogger logger)
        {
            SharePointFlighted sharePointFlighted = new SharePointFlighted(logger);
            ISharePointUrl     sharePointUrl      = this.SharePointUrlFactory.CreateADWithDictFallbackSharePointUrl(new ADSharePointUrl(), new DictSharePointUrl(), logger);
            ADUser             aduser             = (ADUser)DirectoryHelper.ReadADRecipient(session.MailboxOwner.MailboxInfo.MailboxGuid, session.MailboxOwner.MailboxInfo.IsArchive, session.GetADRecipientSession(true, ConsistencyMode.IgnoreInvalid));
            ICredentials       credentials        = this.GetCredentials(aduser);

            if (sharePointFlighted.IsUserFlighted(aduser))
            {
                string url = sharePointUrl.GetUrl(session.MailboxOwner, session.GetADRecipientSession(true, ConsistencyMode.IgnoreInvalid));
                if (string.IsNullOrEmpty(url))
                {
                    return;
                }
                using (Folder folder = Folder.Bind(session, DefaultFolderType.Inbox, new PropertyDefinition[]
                {
                    FolderSchema.OfficeGraphLocation
                }))
                {
                    string value = folder.TryGetProperty(FolderSchema.OfficeGraphLocation) as string;
                    if (string.IsNullOrEmpty(value))
                    {
                        folder[FolderSchema.OfficeGraphLocation] = url;
                        folder.Save();
                    }
                }
                SharePointSignalRestSender       sharePointSignalRestSender       = new SharePointSignalRestSender(credentials, url, logger);
                SharePointSignalRestDataProvider sharePointSignalRestDataProvider = new SharePointSignalRestDataProvider();
                sharePointSignalRestDataProvider.AddAnalyticsSignalSource(new RecipientCacheSignalSource(session));
                sharePointSignalRestDataProvider.ProvideDataFor(sharePointSignalRestSender);
                if (sharePointSignalRestDataProvider.AnyDataProvided())
                {
                    sharePointSignalRestDataProvider.PrintProviderReport(logger);
                    try
                    {
                        sharePointSignalRestSender.Send();
                    }
                    catch (WebException ex)
                    {
                        if (SharePointSignalStoreAssistant.IsWebExceptionUnauthorized(ex))
                        {
                            throw;
                        }
                        throw new SharePointSignalStoreException("Failed to send signals to SharePoint", ex);
                    }
                    logger.LogInfo("Successfully sent signals", new object[0]);
                    return;
                }
                logger.LogInfo("No Recipient Cache retrieved for mailbox.", new object[0]);
            }
        }
        // Token: 0x060014DB RID: 5339 RVA: 0x00077BEC File Offset: 0x00075DEC
        public ITimeBasedAssistant CreateInstance(DatabaseInfo databaseInfo)
        {
            ITimeBasedAssistant timeBasedAssistant = new SharePointSignalStoreAssistant(databaseInfo, this.Name, this.NonLocalizedName);

            this.diagnosticsSession = ((SharePointSignalStoreAssistant)timeBasedAssistant).DiagnosticsSession;
            this.diagnosticsSession.LogDiagnosticsInfo(DiagnosticsLoggingTag.Informational, string.Concat(new object[]
            {
                "SharePointSignalStoreAssistantType.CreateInstance: Database = ",
                databaseInfo.DatabaseName,
                ", WorkCycle = ",
                this.WorkCycle,
                ", workCycleCheckpoint = ",
                this.WorkCycleCheckpoint
            }), new object[0]);
            return(timeBasedAssistant);
        }