예제 #1
0
        public PagedList.IPagedList <Models.Admin.BackToSchool2016.BackToSchool2016BingoQuizSNSStats> GetChristmas2015MakeTreeSNSStats(BackToSchool2016QueryOptions options)
        {
            var sns = repository.BackToSchool2016BingoQuiz.AsQueryable()
                      .Join(repository.BackToSchool2016BingoQuizSns, e => e.Id, p => p.BackToSchool2016BingoQuizId, (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 BingoQuizSns
                        select new Models.Admin.BackToSchool2016.BackToSchool2016BingoQuizSNSStats
            {
                Mobile          = BingoQuizSns.Key,
                Name            = BingoQuizSns.Max(e => e.Name),
                FacebookCount   = BingoQuizSns.Count(e => e.SnsType == "facebook"),
                KakaostoryCount = BingoQuizSns.Count(e => e.SnsType == "kakaostory"),
                KakaotalkCount  = BingoQuizSns.Count(e => e.SnsType == "kakaotalk"),
                TotalCount      = BingoQuizSns.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 <Models.Admin.BackToSchool2016.BackToSchool2016BingoQuizSNSStats>(query, options.Page, options.PageSize));
        }
예제 #2
0
        public IPagedList <Models.Admin.BackToSchool2016.BackToSchool2016BingoQuiz> GetBackToSchool2016BingoQuizList(BackToSchool2016QueryOptions options)
        {
            var query = repository.BackToSchool2016BingoQuiz.AsQueryable();

            if (options.FromDate.HasValue)
            {
                var fromDate = options.FromDate.Value.Date;
                query = query.Where(e => e.CreateDate >= fromDate);
            }
            if (options.ToDate.HasValue)
            {
                var toDate = options.ToDate.Value.AddDays(1).Date;
                query = query.Where(e => e.CreateDate < toDate);
            }

            if (!string.IsNullOrEmpty(options.Name))
            {
                query = query.Where(e => e.Name.ToLower().Contains(options.Name.ToLower()));
            }
            if (!string.IsNullOrEmpty(options.Mobile))
            {
                query = query.Where(e => e.Mobile.Contains(options.Mobile));
            }
            if (!string.IsNullOrEmpty(options.Channel))
            {
                query = query.Where(e => e.Channel.Equals(options.Channel));
            }
            var result = query.Select(e => new Models.Admin.BackToSchool2016.BackToSchool2016BingoQuiz
            {
                CreateDate = e.CreateDate,
                Channel    = e.Channel,
                IpAddress  = e.IpAddress,
                Name       = e.Name,
                Age        = e.Age,
                Mobile     = e.Mobile,
                ZipCode    = e.ZipCode,
                Address1   = e.Address1,
                Address2   = e.Address2
            }).OrderByDescending(e => e.CreateDate);

            return(new Domain.Service.SerializablePagedList <Models.Admin.BackToSchool2016.BackToSchool2016BingoQuiz>(result, options.Page, options.PageSize));
        }