예제 #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);
        }
예제 #2
0
        /// <summary>
        ///		Obtiene el nombre de un campo con el AS
        /// </summary>
        private string GetSqlField(QueryFieldModel field)
        {
            string fieldName = $"[{field.Table}].[{field.Field}]";

            // Añade el alias
            if (!string.IsNullOrWhiteSpace(field.Alias))
            {
                fieldName += $" AS [{field.Alias}]";
            }
            // Devuelve el nombre del campo
            return(fieldName);
        }
예제 #3
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);
        }
예제 #4
0
        /// <summary>
        ///		Añade un campo de clave primaria a la consulta
        /// </summary>
        internal void AddPrimaryKey(BaseColumnRequestModel requestColumn, string column, bool visible)
        {
            QueryFieldModel field = new QueryFieldModel(this, true, FromAlias, column, BaseColumnRequestModel.SortOrder.Undefined,
                                                        ExpressionColumnRequestModel.AggregationType.NoAggregated, visible);

            // Añade los filtros
            if (requestColumn != null)
            {
                field.FiltersWhere.AddRange(GetFilters(requestColumn.FiltersWhere));
            }
            // Añade el campo a la colección de campos de la consulta
            Fields.Add(field);
        }