LogicBuilder.Forms.Parameters 2.1.1

Prefix Reserved
dotnet add package LogicBuilder.Forms.Parameters --version 2.1.1
                    
NuGet\Install-Package LogicBuilder.Forms.Parameters -Version 2.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LogicBuilder.Forms.Parameters" Version="2.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LogicBuilder.Forms.Parameters" Version="2.1.1" />
                    
Directory.Packages.props
<PackageReference Include="LogicBuilder.Forms.Parameters" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LogicBuilder.Forms.Parameters --version 2.1.1
                    
#r "nuget: LogicBuilder.Forms.Parameters, 2.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LogicBuilder.Forms.Parameters@2.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LogicBuilder.Forms.Parameters&version=2.1.1
                    
Install as a Cake Addin
#tool nuget:?package=LogicBuilder.Forms.Parameters&version=2.1.1
                    
Install as a Cake Tool

LogicBuilder.Forms.Parameters

Build Status CodeQL codecov Quality Gate Status NuGet

Overview

This library provides parameter classes that serve as a contract between the LogicBuilder application and .NET applications. These parameter classes enable users to configure data structures in the Logic Builder Client's visual designer, which are then serialized and used to generate LINQ expressions at runtime in .NET applications.

Purpose

The library bridges the gap between visual design-time configuration and runtime code execution by:

  1. Collecting structured data in the Logic Builder Client using .NET Forms-based editors
  2. Serializing configuration for transfer between the designer and runtime applications
  3. Enabling dynamic LINQ expression generation at runtime based on design-time configuration

Key Components

ConnectorParameters

The ConnectorParameters class holds information about connector shapes on flow diagrams and their corresponding UI implementations.

Properties
  • Id (int): The unique identifier for the connector.
  • ShortString (string): A resource file key used as a reference for the LongString property. This enables localization and resource management.
  • LongString (string): The display text or full description associated with the connector/button.
  • ConnectorData (object): Additional metadata about the button's appearance and behavior, provided by developers at design time. This flexible property allows for custom data structures specific to your application's needs.

Expressions Namespace

The Expressions folder contains parameter classes that represent LINQ expression components. These classes implement the IExpressionParameter interface and are used to build expression trees at runtime.

Core Expression Classes
  • BinaryOperatorParameters: Abstract base class for binary operations with left and right operands
    • EqualsBinaryOperatorParameters: Equality comparison (==)
    • NotEqualsBinaryOperatorParameters: Inequality comparison (!=)
    • GreaterThanBinaryOperatorParameters: Greater than comparison (>)
    • GreaterThanOrEqualsBinaryOperatorParameters: Greater than or equal comparison (>=)
    • LessThanBinaryOperatorParameters: Less than comparison (<)
    • LessThanOrEqualsBinaryOperatorParameters: Less than or equal comparison (<=)
    • AndBinaryOperatorParameters: Logical AND (&&)
    • OrBinaryOperatorParameters: Logical OR (||)
Unary and Value Operators
  • NotOperatorParameters: Logical NOT operation (!)
  • ConstantOperatorParameters: Represents constant values with optional type information
  • CollectionConstantOperatorParameters: Represents collections of constant values with element type
  • ParameterOperatorParameters: Represents lambda expression parameters
Member Access and Type Conversion
  • MemberSelectorOperatorParameters: Accesses properties or fields from a source operand (e.g., entity.Property)
  • ConvertOperatorParameters: Type conversion operations
Collection Operations
  • InOperatorParameters: Checks if an item exists in a collection
  • ContainsOperatorParameters: String or collection contains operation
  • AsEnumerableOperatorParameters: Converts to IEnumerable
  • AsQueryableOperatorParameters: Converts to IQueryable
Lambda Expressions
  • FilterLambdaOperatorParameters: Represents filter predicates (e.g., x => x.Age > 18)
    • Properties: FilterBody, SourceElementType, ParameterName
  • SelectorLambdaOperatorParameters: Represents projection/selector expressions (e.g., x => x.Name)
    • Properties: Selector, SourceElementType, BodyType, ParameterName

Expansions Namespace

The Expansions folder contains parameter classes for OData-style query operations, particularly for expanding and projecting related entities.

Select/Expand Operations
  • SelectExpandItemParameters: Configures navigation property expansions with optional filtering, sorting, and field selection

    • MemberName: Navigation property name to expand
    • Filter: Optional filter for collection navigation properties
    • QueryFunction: Optional sorting, skip, and take operations
    • Selects: List of fields to select (projection)
    • ExpandedItems: Nested expansions for related entities
  • SelectExpandItemFilterParameters: Wraps filter lambda expressions for navigation property filtering

  • SelectExpandItemQueryFunctionParameters: Configures query operations on expanded collections

Sorting and Paging
  • SortCollectionParameters: Defines sorting, skip, and take operations for collections

    • SortDescriptions: List of sort criteria
    • Skip: Number of items to skip (pagination)
    • Take: Maximum number of items to return (page size)
  • SortDescriptionParameters: Individual sort criteria

    • PropertyName: Property to sort by
    • SortDirection: Ascending or descending order

Usage Workflow

  1. Design Time: Users configure queries, filters, and data operations in the Logic Builder Client using visual forms populated by these parameter classes
  2. Serialization: The configured parameters are serialized (typically to JSON or XML)
  3. Runtime: .NET applications deserialize the parameters and use them to construct LINQ expression trees dynamically
  4. Execution: The generated expressions are executed against data sources (Entity Framework, LINQ to Objects, etc.)

Example Scenario

A user might configure a query in Logic Builder to:

  • Filter products where Price > 100
  • Sort by Name ascending
  • Select only Id, Name, and Price fields
  • Expand the Category navigation property

This configuration would be captured using classes like FilterLambdaOperatorParameters, SortCollectionParameters, and SelectExpandItemParameters, then used at runtime to generate the equivalent LINQ expression.

Installation

dotnet add package LogicBuilder.Forms.Parameters

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.1 85 6/9/2026
2.1.0 93 6/5/2026
2.0.6 184 2/12/2026
2.0.4 607 5/11/2023
2.0.3 2,405 3/12/2022
2.0.2 5,601 11/23/2021
2.0.0 912 10/26/2021
1.0.4 579 10/26/2021
1.0.3 792 9/22/2021
1.0.2 2,301 2/20/2021
1.0.1-preview02 761 7/20/2020
1.0.1-preview01 894 7/18/2020
1.0.0 1,415 12/30/2018

Making constant parameter arguments nullable.