public PagedList.IPagedList <MakeTreeEntry> GetChristmas2015MakeTree(Christmas2015QueryOptions options) { var query = repository.Christmas2015MakeTree.Select(e => new MakeTreeEntry { Name = e.Name, Mobile = e.Mobile, Zipcode = e.Zipcode, Address1 = e.Address1, Address2 = e.Address2, Age = e.Age, IpAddress = e.IpAddress, Channel = e.Channel, RegisterDate = e.RegisterDate, Toy1 = e.Toy1, Toy2 = e.Toy2, Toy3 = e.Toy3, Toy4 = e.Toy4, Toy5 = e.Toy5, Toy6 = e.Toy6, Toy7 = e.Toy7, SynthesisImage = e.SynthesisImage, Content = e.Content }); if (options.StartDate.HasValue) { var sDate = options.StartDate.Value.Date; query = query.Where(e => e.RegisterDate >= sDate); } if (options.EndDate.HasValue) { var eDate = options.EndDate.Value.AddDays(1); query = query.Where(e => e.RegisterDate < eDate); } if (!string.IsNullOrEmpty(options.Channel)) { query = query.Where(e => e.Channel == options.Channel); } if (!string.IsNullOrEmpty(options.Name)) { query = query.Where(e => e.Name.Contains(options.Name)); } if (!string.IsNullOrEmpty(options.Mobile)) { query = query.Where(e => e.Mobile.Contains(options.Mobile)); } query = query.OrderByDescending(e => e.RegisterDate); return(new SerializablePagedList <MakeTreeEntry>(query, options.Page, options.PageSize)); }
public PagedList.IPagedList <MakeTreeSNSStats> GetChristmas2015MakeTreeSNSStats(Christmas2015QueryOptions options) { var sns = repository.Christmas2015MakeTree.AsQueryable() .Join(repository.Christmas2015MakeTreeSNSShares, e => e.Id, p => p.Christmas2015MakeTreeId, (e, p) => new { SnsType = p.SnsType.ToLower(), Mobile = e.Mobile, Name = e.Name }); var query = from s in sns group s by s.Mobile into makeTreeSns select new MakeTreeSNSStats { Mobile = makeTreeSns.Key, Name = makeTreeSns.Max(e => e.Name), FacebookCount = makeTreeSns.Count(e => e.SnsType == "facebook"), KakaostoryCount = makeTreeSns.Count(e => e.SnsType == "kakaostory"), KakaotalkCount = makeTreeSns.Count(e => e.SnsType == "kakaotalk"), TotalCount = makeTreeSns.Count() }; if (!string.IsNullOrEmpty(options.Name)) { query = query.Where(e => e.Name.Contains(options.Name)); } if (!string.IsNullOrEmpty(options.Mobile)) { query = query.Where(e => e.Mobile.Contains(options.Mobile)); } query = query.OrderByDescending(e => e.TotalCount); return(new SerializablePagedList <MakeTreeSNSStats>(query, options.Page, options.PageSize)); }