Beispiel #1
0
        public static string AsHtml(this SpamStatus instance, string id)
        {
            const string Template = "<span{0}{1}>{2}</span>";

            string idAttribute = string.IsNullOrWhiteSpace(id) ? string.Empty : " id=\"{0}\"".FormatWith(id);

            string html;

            switch (instance)
            {
            case SpamStatus.BadWord:
            case SpamStatus.Phishing:
            case SpamStatus.Malware:
            {
                html = Template.FormatWith(idAttribute, " class=\"warningText\"", "Spam");
                break;
            }

            default:
            {
                html = Template.FormatWith(idAttribute, string.Empty, instance.AsDescriptiveText());
                break;
            }
            }

            return(html);
        }
        public SpamStatus CheckStatus(ShortUrl shortUrl)
        {
            Check.Argument.IsNotNull(shortUrl, "shortUrl");

            int phishingCount;
            int malwareCount;

            googleSafeBrowsing.Verify(shortUrl.Url, out phishingCount, out malwareCount);

            SpamStatus status = SpamStatus.None;

            if ((phishingCount > 0) || (malwareCount > 0))
            {
                if (phishingCount > 0)
                {
                    status |= SpamStatus.Phishing;
                }

                if (malwareCount > 0)
                {
                    status |= SpamStatus.Malware;
                }
            }
            else
            {
                status = SpamStatus.Clean;
            }

            return(status);
        }
        public void UpdateShortUrlSpamStatus(string aliasName, SpamStatus status)
        {
            ShortUrl shortUrl = shortUrlRepository.GetByAliasName(aliasName);

            shortUrl.SpamStatus = status;

            unitOfWork.Commit();
        }
Beispiel #4
0
        private void OnCreate(Alias alias)
        {
            eventAggregator.GetEvent <ShortUrlCreatedEvent>().Publish(new EventArgs <Alias>(alias));

            ShortUrl   shortUrl = alias.ShortUrl;
            SpamStatus status   = spamDetectors.Aggregate(shortUrl.SpamStatus, (current, detector) => current | detector.CheckStatus(shortUrl));

            shortUrl.SpamStatus = status;

            if (shortUrl.SpamStatus.IsSpam())
            {
                if (shortUrl.SpamStatus.IsClean())
                {
                    shortUrl.SpamStatus ^= SpamStatus.Clean;
                }

                eventAggregator.GetEvent <PossibleSpamDetectedEvent>().Publish(new EventArgs <Alias>(alias));
            }
        }
 public static bool IsPhishing(this SpamStatus instance)
 {
     return((instance & SpamStatus.Phishing) == SpamStatus.Phishing);
 }
 public static bool IsBadWord(this SpamStatus instance)
 {
     return((instance & SpamStatus.BadWord) == SpamStatus.BadWord);
 }
 public static bool IsClean(this SpamStatus instance)
 {
     return((instance & SpamStatus.Clean) == SpamStatus.Clean);
 }
 public static bool IsSpam(this SpamStatus instance)
 {
     return(IsBadWord(instance) || IsPhishing(instance) || IsMalware(instance));
 }
 public static bool IsMalware(this SpamStatus instance)
 {
     return((instance & SpamStatus.Malware) == SpamStatus.Malware);
 }
Beispiel #10
0
 public static string AsHtml(this SpamStatus instance)
 {
     return(AsHtml(instance, null));
 }
        private ActionResult UpdateShortUrlSpamStatus(string alias, SpamStatus status)
        {
            administrativeService.UpdateShortUrlSpamStatus(alias, status);

            return(this.AdaptivePostRedirectGet(null, administrativeService.GetShortUrl(alias), Url.Url(alias)));
        }