public PartialFindResult <ReleaseEventForApiContract> GetList( string query = "", int seriesId = 0, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, EventSortRule sort = EventSortRule.Name, ReleaseEventOptionalFields fields = ReleaseEventOptionalFields.None ) { query = !string.IsNullOrEmpty(query) ? FindHelpers.CleanTerm(query.Trim()) : string.Empty; return(repository.HandleQuery(ctx => { var q = ctx.Query() .WhereHasName(query) .WhereHasSeries(seriesId); var entries = q .OrderBy(sort) .Skip(start) .Take(maxResults) .ToArray() .Select(e => new ReleaseEventForApiContract(e, fields)) .ToArray(); var count = 0; if (getTotalCount) { count = q.Count(); } return new PartialFindResult <ReleaseEventForApiContract>(entries, count); })); }
public UserContract[] FindUsersByName(string term, NameMatchMode matchMode = NameMatchMode.StartsWith) { if (string.IsNullOrEmpty(term)) { return(new UserContract[0]); } term = FindHelpers.CleanTerm(term.Trim()); return(HandleQuery(session => { User[] users; if (matchMode == NameMatchMode.StartsWith) { users = session.Query <User>().Where(u => u.Name.StartsWith(term)).OrderBy(u => u.Name).Take(10).ToArray(); } else if (matchMode == NameMatchMode.Partial) { users = session.Query <User>().Where(u => u.Name.Contains(term)).OrderBy(u => u.Name).Take(10).ToArray(); } else { users = session.Query <User>().Where(u => u.Name == term).OrderBy(u => u.Name).Take(10).ToArray(); } return users.Select(u => new UserContract(u)).ToArray(); })); }