public void Search(xDBDataContext db) { var users = db.Users.AsQueryable(); users = users.Where(x => x.Sex == Sex); if (Purpose.IsFilled()) { users = users.Where(x => SqlMethods.Like(x.Purpose, string.Format("%{0}%", Purpose))); } if (MinAge.HasValue) { users = users.Where(x => x.BirthDate.HasValue && x.BirthDate.Value.Date <= MinBirthDate.Value.Date); } if (MaxAge.HasValue) { users = users.Where(x => x.BirthDate.HasValue && x.BirthDate.Value.Date >= MaxBirthDate.Value.Date); } if (HasPhoto) { users = users.Where(x => x.UserPhotos.Any()); } if (IsOnline) { users = users.Where(x => x.LastVisitDate.HasValue && x.LastVisitDate.Value >= DateTime.Now.AddMinutes(-5)); } if (TownID.HasValue) { users = users.Where(x => x.TownID == TownID.Value); } Users = users.ToList().OrderByDescending(x => x.IsVip).ThenByDescending(x => x.IsUp).ThenByDescending(x => x.webpages_Membership.CreateDate).ToList(); }
public void Search(xDBDataContext db) { var res = db.Meetings.AsQueryable(); res = res.Where(x => x.TargetSex == !Sex); if (Purpose.IsFilled()) { res = res.Where(x => x.Type == Purpose); } if (MinAge.HasValue) { res = res.Where(x => x.User.BirthDate.HasValue && x.User.BirthDate <= MinBirthDate); } if (MaxAge.HasValue) { res = res.Where(x => x.User.BirthDate.HasValue && x.User.BirthDate >= MaxBirthDate); } if (Keywords.IsFilled()) { res = res.Where(x => SqlMethods.Like(x.Comment, "%{0}%".FormatWith(Keywords.Replace(" ", "%")))); } if (MinDate.HasValue) { res = res.Where(x => x.Date.HasValue && x.Date.Value.Date >= MinDate.Value.Date); } if (MaxDate.HasValue) { res = res.Where(x => x.Date.HasValue && x.Date.Value.Date <= MaxDate.Value.Date); } if (!MinDate.HasValue && !MaxDate.HasValue) { res = res.Where(x => x.Date.HasValue && x.Date.Value.Date >= DateTime.Now.Date); } if (TownID.HasValue) { res = res.Where(x => x.User.TownID == TownID); } if (Compartible && Me != null) { res = res.Where( x => (x.MaxAge.HasValue && x.MaxAge <= Me.MyAge && x.MinAge.HasValue && x.MinAge.Value == Me.MyAge) || (!x.MaxAge.HasValue && !x.MinAge.HasValue)); } Result = res.ToList(); }