Esempio n. 1
0
        public GroupNewsModel GetNewsStatistics(Int32 id)
        {
            var noticia = Repository.Newses()
                          .Where(x => x.Keywords != "MarcoPaz")
                          .SingleOrDefault(x => x.NewsId == id);

            if (noticia == null)
            {
                return(null);
            }

            var items = Repository.Visits()
                        .Where(x => x.NewsId == noticia.NewsId)
                        .ToList();

            var model = new GroupNewsModel
            {
                Id       = id,
                Title    = noticia.Title,
                Count    = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(),
                Facebook = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("fb", StringComparison.OrdinalIgnoreCase)),
                Twitter  = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("tw", StringComparison.OrdinalIgnoreCase)),
                LinkedIn = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("li", StringComparison.OrdinalIgnoreCase)),
                Google   = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("gp", StringComparison.OrdinalIgnoreCase)),
                Public   = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("Público", StringComparison.OrdinalIgnoreCase))
            };

            return(model);
        }
Esempio n. 2
0
        public List <GroupNewsModel> GetMagazineNewsStatistics(Int32 id)
        {
            var noticias = Repository.Newses()
                           .Where(x => x.Keywords != "MarcoPaz")
                           .Where(x => x.Category.MagazineId == id)
                           .Where(x => !x.IsDeleted)
                           .ToList();

            if (noticias.Count == 0)
            {
                return(null);
            }

            var model = new List <GroupNewsModel>();

            foreach (var item in noticias)
            {
                var items = Repository.Visits()
                            .Where(x => x.NewsId == item.NewsId)
                            .ToList();

                var modelItem = new GroupNewsModel
                {
                    Id       = id,
                    Title    = item.Title,
                    Count    = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(),
                    Facebook = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("fb", StringComparison.OrdinalIgnoreCase)),
                    Twitter  = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("tw", StringComparison.OrdinalIgnoreCase)),
                    LinkedIn = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("li", StringComparison.OrdinalIgnoreCase)),
                    Google   = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("gp", StringComparison.OrdinalIgnoreCase)),
                    Public   = items.Where(x => !x.Ip.Contains("66.220.158.")).DistinctBy(x => x.Ip).Count(v => v.social.Equals("Público", StringComparison.OrdinalIgnoreCase))
                };

                model.Add(modelItem);
            }

            return(model);
        }