Пример #1
0
        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));
        }
Пример #2
0
        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));
        }