public int GetNumberOfExpressions(GetPageParameters parameters)
        {
            int res;

            Log.StartTiming();
            using (var context = GetContext())
            {
                res = context.GetNumberOfExpressions(parameters);
            }
            Log.StopTiming();
            return(res);
        }
        public IEnumerable <ExpressionEntity> GetPage(GetPageParameters parameters)
        {
            IEnumerable <ExpressionEntity> res;

            Log.StartTiming();
            using (var context = GetContext())
            {
                res = context.GetPage(parameters);
            }
            Log.StopTiming();

            return(res);
        }
Beispiel #3
0
        public IEnumerable <ExpressionEntity> GetPage(GetPageParameters parameters)
        {
            var expressions = Find(Expressions, parameters);

            expressions = expressions.Skip(parameters.Index * parameters.PageSize).Take(parameters.PageSize);


            var res = expressions.ToList();

            foreach (var ex in res)
            {
                ex.SetClean();
            }

            return(res);
        }
Beispiel #4
0
 public int GetNumberOfExpressions(GetPageParameters parameters)
 {
     return(Find(Expressions, parameters, false).Count());
 }
Beispiel #5
0
        private IQueryable <ExpressionEntity> Find(IQueryable <ExpressionEntity> expressions, GetPageParameters parameters,
                                                   bool order = true)
        {
            var res = expressions.Include(e => e.Translations);

            if (!String.IsNullOrEmpty(parameters.TextToFind))
            {
                if (parameters.MatchWholeWord)
                {
                    res =
                        res.
                        Where(
                            e => e.Expression == parameters.TextToFind
                            ||
                            e.Translations.Any(t => t.Translation == parameters.TextToFind));
                }
                else
                {
                    res =
                        res.
                        Where(
                            e => e.Expression != null && e.Expression.Contains(parameters.TextToFind)
                            ||
                            e.Translations.Any(
                                t => t.Translation != null && t.Translation.Contains(parameters.TextToFind)));
                }
            }

            if (!String.IsNullOrEmpty(parameters.Category))
            {
                res = res.Where(e => e.Category == parameters.Category);
            }

            if (parameters.Lang > 0)
            {
                res = res.Where(ex => ex.Translations.Any(t => (t.Language & parameters.Lang) != 0));

                if (!parameters.ShowEmpty)
                {
                    res = res.Where(ex => ex.Translations.Any(t => !String.IsNullOrEmpty(t.Translation)));
                }
            }
            else
            {
                res = res.Where(ex => ex.Translations.Count == 0);
            }

            if (order)
            {
                res = res.OrderBy(e => e.Expression);
            }

            return(res);
        }