Exemple #1
0
        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);
            }));
        }
Exemple #2
0
        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();
            }));
        }