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