Example #1
0
        public ActionResult Create(ProcessedLink processedlink)
        {
            if (ModelState.IsValid)
            {
                _repository.Save(processedlink);
                return RedirectToAction("Index");
            }

            return View(processedlink);
        }
Example #2
0
        public void ProcessStatus(TwitterStatus status)
        {
            // Exit the method if there are no entities
            if (status.Entities == null)
                return;

            var hashTag = _hashTagRepository.Linq()
                              .FirstOrDefault(x => status.Text.ToLowerInvariant().Contains(x.Name.ToLowerInvariant())) ??
                          new HashTag {Name = "unknown"};

            _logger.InfoFormat("HASH: {0}", hashTag);

            var entitiesSorted = status.Entities.OrderBy(e => e.StartIndex).Reverse();
            foreach (var entity in entitiesSorted)
            {
                var loggedStatus = new LoggedStatus
                {
                    CreatedDate = status.CreatedDate,
                    Source = status.Source,
                    Text = status.Text,
                    User = status.User.ScreenName,
                    UserImage = status.User.ProfileImageLocation,
                    HtmlText = status.LinkifiedText(),
                    TweetId = status.StringId
                };

                var urlEntity = entity as TwitterUrlEntity;
                if (urlEntity != null)
                {
                    try
                    {
                        var expandedLink = GetExpandedLink(urlEntity.Url);
                        var foundLink = _processedLinkRepository.Linq().FirstOrDefault(x => x.ExpandedLink == expandedLink);
                        if (foundLink == null)
                        {

                            var newLink = new ProcessedLink
                            {
                                Link = urlEntity.Url,
                                ExpandedLink = expandedLink,
                                Created = DateTime.Now,
                                NumberOfTweets = 1,
                                HashTag = hashTag.Name
                            };
                            newLink.StatusContainingLink.Add(loggedStatus);
                            _processedLinkRepository.Save(newLink);

                        }
                        else
                        {
                            foundLink.Modified = DateTime.Now;
                            foundLink.NumberOfTweets = foundLink.StatusContainingLink.Count() + 1;
                            foundLink.StatusContainingLink.Add(loggedStatus);
                            _processedLinkRepository.Save(foundLink);
                        }
                    }
                    catch (Exception e)
                    {

                        _logger.Error(e);
                    }
                }
            }
        }