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); }
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); }