/// <summary> /// Converts attribute model with type <see cref="DCConstants.DCAttributeFilterTypeId"/> to <see cref="Select"/>. /// </summary> /// <param name="model">Extensible model object.</param> /// <param name="userConnection">User connection.</param> /// <returns>Converted <see cref="Select"/> object when attribute is filter and value is correct /// search data string. And null in othervise.</returns> public static Select ToFilter(this DCAttributeModel model, UserConnection userConnection) { model.CheckArgumentNull(nameof(model)); userConnection.CheckArgumentNull(nameof(userConnection)); if (!model.IsFilter()) { return(null); } var dataSourceFilters = Json.Deserialize <Nui.ServiceModel.DataContract.Filters>(model.Value); var esq = new EntitySchemaQuery(userConnection.EntitySchemaManager, dataSourceFilters.RootSchemaName); esq.AddColumn(esq.RootSchema.GetPrimaryColumnName()); IEntitySchemaQueryFilterItem filters = dataSourceFilters.BuildEsqFilter(esq.RootSchema.UId, userConnection); CommonUtilities.DisableEmptyEntitySchemaQueryFilters(new[] { filters }); if (filters != null) { esq.Filters.Add(filters); } return(esq.GetSelectQuery(userConnection)); }
/// <summary> /// Determines whether the attribute is a filter. /// </summary> /// <param name="model">Extensible model object.</param> /// <returns>Returns true when <paramref name="model"/> has type /// <see cref="DCConstants.DCAttributeFilterTypeId"/>. And false in otherwise.</returns> public static bool IsFilter(this DCAttributeModel model) { model.CheckArgumentNull(nameof(model)); return(model.TypeId == DCConstants.DCAttributeFilterTypeId); }