コード例 #1
0
        // Token: 0x06001BAE RID: 7086 RVA: 0x0006A460 File Offset: 0x00068660
        protected override bool InternalExecute()
        {
            bool result;

            try
            {
                this.linkStats.linkHash = LinkClickedSignalStats.GenerateObfuscatingHash(this.url);
                string text = this.GetSharePointUrl();
                if (text == null)
                {
                    this.linkStats.isSPURLValid = false;
                    this.Logger.LogWarning("No valid SharePoint Url found, aborting.", new object[0]);
                    result = false;
                }
                else
                {
                    text = text.TrimEnd(new char[]
                    {
                        '/'
                    });
                    if (this.FilterUrl(this.url, text))
                    {
                        this.linkStats.isInternalLink = true;
                        this.Logger.LogInfo("The clicked Url is internal, skipping the signal.", new object[0]);
                        result = true;
                    }
                    else
                    {
                        List <string> recipients = null;
                        string        sender     = null;
                        if (this.GetRecipients(out recipients, out sender))
                        {
                            SharePointSignalRestDataProvider sharePointSignalRestDataProvider = new SharePointSignalRestDataProvider();
                            sharePointSignalRestDataProvider.AddAnalyticsSignalSource(new LinkClickedSignalSource(sender, this.url, this.title, this.description, this.imgurl, this.imgdimensions, recipients));
                            this.linkStats.isValidSignal = true;
                        }
                        result = true;
                    }
                }
            }
            catch (Exception ex)
            {
                this.Logger.LogWarning("Got exception of type: {0}", new object[]
                {
                    ex.GetType().ToString()
                });
                throw;
            }
            finally
            {
                this.Logger.LogInfo(this.linkStats.GetLinkClickedSignalStatsLogString(), new object[0]);
                ((TraceLogger)this.Logger).Close();
                this.logger = null;
            }
            return(result);
        }
コード例 #2
0
        // Token: 0x06001BAC RID: 7084 RVA: 0x0006A334 File Offset: 0x00068534
        internal bool GetRecipients(out List <string> recipients, out string sender)
        {
            recipients = null;
            sender     = null;
            MessageType messageType = this.GetMailMessage();

            if (messageType == null)
            {
                this.Logger.LogWarning("Unable to get mail item.", new object[0]);
                return(false);
            }
            if (messageType.From == null)
            {
                this.Logger.LogInfo("No sender found in the mail, the From field was empty.", new object[0]);
                return(false);
            }
            if ((messageType.ToRecipients == null || messageType.ToRecipients.Length == 0) && (messageType.CcRecipients == null || messageType.CcRecipients.Length == 0))
            {
                this.Logger.LogInfo("No To or CC recipients found in mail.", new object[0]);
                return(false);
            }
            sender = messageType.From.Mailbox.EmailAddress;
            this.linkStats.userHash = LinkClickedSignalStats.GenerateObfuscatingHash(sender);
            List <EmailAddressWrapper> list = new List <EmailAddressWrapper>(messageType.ToRecipients ?? new EmailAddressWrapper[0]);

            list.AddRange(messageType.CcRecipients ?? new EmailAddressWrapper[0]);
            recipients = this.GetOpenDLs(list.ToArray());
            if (recipients.Count == 0)
            {
                this.Logger.LogInfo("No open public DLs or unified groups found in mail.", new object[0]);
                recipients = null;
                sender     = null;
                return(false);
            }
            return(true);
        }