public UserChallengeListModel GetUserChallenges(int id, int? orderBy, bool? pointsClaimed, string suburb, string search, int? timeRange, int page, int pageSize) { using (var context = new greenMoneyEntities()) { UserChallengeListModel listModel = new UserChallengeListModel(); if (timeRange == 100 || timeRange == null) timeRange = 0; int range = (-1) * Convert.ToInt32(timeRange); DateTime history = DateTime.Now.Date.AddDays(range); var userChallenges = from uc in context.UserChallenges join u in context.Users1 on uc.UserId equals u.Id //uc.UserId.Equals(u.Id) join a in context.Addresses on u.Address_Id equals a.Id where uc.ChallengeId == id && (uc.PointsClaimed == pointsClaimed || pointsClaimed == null) && (a.Suburb == suburb || suburb == "Suburb") && (u.FirstName.Contains(search) || u.LastName.Contains(search)) && (uc.Issued > history || range == 0) orderby uc.Issued descending select new { Id = uc.Id, ChallengeId = uc.ChallengeId, Issued = uc.Issued, UserId = uc.UserId, UserName = (String.IsNullOrEmpty(u.FirstName) ? "" : u.FirstName) + " " + (String.IsNullOrEmpty(u.LastName) ? "" : u.LastName), Suburb = a.Suburb, Workplace = a.StreetName, PointsClaimed = uc.PointsClaimed }; if (pageSize == 0) pageSize = userChallenges.Count(); switch (orderBy) { case 0: userChallenges = userChallenges.OrderByDescending(x => x.Issued); break; case 1: userChallenges = userChallenges.OrderBy(x => x.Issued); break; } listModel.NumChallenges = userChallenges.Count(); listModel.Page = page; listModel.NumPages = (int)Math.Ceiling((double)userChallenges.Count() / pageSize); userChallenges = userChallenges.Skip((page - 1) * pageSize).Take(pageSize); //var userChallenges = context.UserChallenges.Where(x => x.ChallengeId == id).Include(p => p.Users1); List<UserChallengeModel> list = new List<UserChallengeModel>(); foreach (var userChallenge in userChallenges) { UserChallengeModel userChallengeModel = new UserChallengeModel(); Utils.CopyProperties(userChallenge, userChallengeModel); list.Add(userChallengeModel); } listModel.UserChallengeList = list; return listModel; } }
public UserChallengeModel GetUserChallenge(int id) { using (var context = new greenMoneyEntities()) { UserChallenges userChallenge = context.UserChallenges.Single(x => x.Id == id); UserChallengeModel ucModel = new UserChallengeModel(); Utils.CopyProperties(userChallenge, ucModel); return ucModel; } }