Ejemplo n.º 1
0
        public object GetKeyValue(MainPageUrlBuilder url)
        {
            var value = GetKeyValue(url.QueryParameters, null, true);

            if (string.IsNullOrEmpty(value))
            {
                return(null);
            }
            return(DataSourceViewGetName.GetKey(value));
        }
Ejemplo n.º 2
0
        public object GetKeyValue(MainPageUrlBuilder url, string referenceKey, bool allowGetTableKey)
        {
            var value = GetKeyValue(url.QueryParameters, referenceKey, allowGetTableKey);

            if (string.IsNullOrEmpty(value))
            {
                return(null);
            }
            return(DataSourceViewGetName.GetKey(value));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Получить вырожение для фильтрации данных по текущей ссылке.
        /// </summary>
        /// <param name="url">Текущая ссылка.</param>
        /// <param name="exp">Вырожение предоставляющее объект строки, типа таблицы навигатора.</param>
        /// <param name="referenceKey">Ключ ссылки в строке браузера.</param>
        /// <returns>Возвращет вырожение в виде результата boolean, если нет необходимости в фильтрации, то возвращается null.</returns>
        public virtual Expression FilterData(MainPageUrlBuilder url, Expression exp, string referenceKey)
        {
            var value = GetKeyValue(url.QueryParameters, referenceKey, false);

            if (string.IsNullOrEmpty(value))
            {
                return(null);
            }
            var key = (long)DataSourceViewGetName.GetKey(value);

            if (QueryParameters == null)
            {
                return(Expression.Equal(Expression.Property(exp, "id"), Expression.Constant(key)));
            }
            var parameterKey = string.IsNullOrEmpty(referenceKey) ? TableNameKey : referenceKey + ".id.Equals";

            return(Expression.Equal(Expression.Property(exp, "id"), QueryParameters.GetExpression(parameterKey, key)));
        }