// GET: Lesson public IActionResult Index(string teacher = null, string subject = null, string dayOfWeek = null) { var filters = new Predicate <Lesson>[] { x => string.IsNullOrWhiteSpace(teacher) || x.Teacher?.Id.ToString() == teacher, x => string.IsNullOrWhiteSpace(subject) || x.Subject.ToString() == subject, x => string.IsNullOrWhiteSpace(dayOfWeek) || x.DayOfWeek.ToString() == dayOfWeek }; var lessons = _context.Lessons .Include(l => l.Room) .Join( _context.Teachers, l => l.TeacherId, t => t.Id, (l, t) => new Tuple <Lesson, Teacher>(l, t) ) .ToList() .Where(x => filters.All(filter => filter(x.Item1))); ViewData["Teachers"] = new SelectList(new object[] { new { Id = "", FullName = "(כולם)" } }.Concat(_context.Teachers), "Id", "FullName", teacher); var parseSubject = Enum.TryParse <Subject>(subject, out var subjectValue); ViewData["Subjects"] = (parseSubject ? subjectValue : 0).ToSelectList(withEmpty: true); var parseDay = Enum.TryParse <DayOfWeek>(dayOfWeek, out var dayValue); ViewData["DaysOfWeek"] = (parseDay ? dayValue : (DayOfWeek)(-1)).ToSelectList(GetDayDisplayName, true); return(View(lessons)); }
public bool validate(string domain) { var levelNames = domain.Split(DomainSeparator); Predicate <string>[] domainLevelValidators = new Predicate <string>[] { (string d) => d.Length <= 253, }; Predicate <string[]>[] levelNameListValidators = new Predicate <string[]>[] { (string[] lns) => lns.Length <= 127 && lns.Length > 1, (string[] lns) => !Int32.TryParse(lns.Last(), out _) }; Predicate <string>[] levelNameValidators = new Predicate <string>[] { (string ln) => ln.Length > 0 && ln.Length < 64, (string ln) => !ln.StartsWith(MinusCharacter) && !ln.EndsWith(MinusCharacter), (string ln) => ln.All(c => (Char.IsLetterOrDigit(c) && (c < 128)) || c == MinusCharacter) }; return(domainLevelValidators.All(p => p.Invoke(domain)) && levelNameListValidators.All(p => p.Invoke(levelNames)) && levelNames.All(ln => levelNameValidators.All(p => p.Invoke(ln)))); }
/// <summary> /// Search users from repository according searchCriteria /// </summary> /// <param name="criteria">array of predicate search criterias</param> public IEnumerable<int> SearchForUser(Predicate<User>[] criteria) { if (criteria == null) throw new ArgumentNullException(); return _users.Where(x => criteria.All(e => e.Invoke(x.Value))).Select(x => x.Key); }
/// <summary> /// Search users by predicates /// </summary> /// <param name="criteria">array of predicate search criterias</param> public IEnumerable<int> SearchForUser(Predicate<User>[] criteria) { if (criteria == null) { ts.TraceInformation($"Argument null exception in search request at slave in {AppDomain.CurrentDomain.FriendlyName}"); throw new ArgumentNullException(); } rwls.EnterReadLock(); try { ts.TraceInformation($"SearchForUser request in SlaveService at {DateTime.Now} in {AppDomain.CurrentDomain.FriendlyName}"); return _tempData.Where(x => criteria.All(e => e.Invoke(x.Value))).Select(x => x.Key); } finally { rwls.ExitReadLock(); } }