Esempio n. 1
0
        /// <summary>
        ///		Añade un campo a la consulta
        /// </summary>
        internal void AddColumn(string column, ExpressionColumnRequestModel.AggregationType aggregatedBy, BaseColumnRequestModel requestColumn)
        {
            QueryFieldModel field = GetQueryField(column, aggregatedBy, requestColumn);

            // Añade los filtros
            field.FiltersWhere.AddRange(GetFilters(requestColumn.FiltersWhere));
            field.FilterHaving.AddRange(GetFilters(requestColumn.FiltersHaving));
            // Añade la columna a la consulta
            Fields.Add(field);
        }
Esempio n. 2
0
        /// <summary>
        ///		Obtiene el campo de la consulta
        /// </summary>
        private QueryFieldModel GetQueryField(string columnId, ExpressionColumnRequestModel.AggregationType aggregatedBy, BaseColumnRequestModel requestColumn)
        {
            QueryFieldModel field = Fields.FirstOrDefault(item => item.Field.Equals(columnId, StringComparison.CurrentCultureIgnoreCase));

            // Si no existía, lo añade
            if (field == null)
            {
                field = new QueryFieldModel(this, false, FromAlias, columnId, requestColumn.OrderBy, aggregatedBy, requestColumn.Visible);
            }
            // Devuelve el campo
            return(field);
        }
Esempio n. 3
0
 internal QueryFieldModel(QueryModel query, bool primaryKey, string table, string field, BaseColumnRequestModel.SortOrder orderBy,
                          ExpressionColumnRequestModel.AggregationType aggregation, bool visible)
 {
     Query        = query;
     IsPrimaryKey = primaryKey;
     Table        = table;
     Field        = field;
     Aggregation  = aggregation;
     Visible      = visible;
     if (Visible)
     {
         OrderBy = orderBy;
     }
 }