Coffee.NetCore 1.8.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Coffee.NetCore --version 1.8.2
                    
NuGet\Install-Package Coffee.NetCore -Version 1.8.2
                    
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="Coffee.NetCore" Version="1.8.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Coffee.NetCore" Version="1.8.2" />
                    
Directory.Packages.props
<PackageReference Include="Coffee.NetCore" />
                    
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 Coffee.NetCore --version 1.8.2
                    
#r "nuget: Coffee.NetCore, 1.8.2"
                    
#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 Coffee.NetCore@1.8.2
                    
#: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=Coffee.NetCore&version=1.8.2
                    
Install as a Cake Addin
#tool nuget:?package=Coffee.NetCore&version=1.8.2
                    
Install as a Cake Tool

[1.8.2] - 2025-07-28

Changed

  • Fixed SqlFilter to allow multiple filters

[1.8.1] - 2025-04-25

Changed

  • Resolved an exception thrown during data fetching due to improper int to long conversion.

[1.8.0] - 2025-04-02

Changed

  • Now coffee uses long instead of int on base classes

[1.7.6] - 2025-01-13

Changed

  • Fixed pagination bug, where the when we had multiples joins it wasn´t bring the total correctly.

[1.7.4] - 2024-08-17

Changed

  • Assembly Selection Logic: Updated the logic for identifying the correct assembly by changing the condition from i.FullName.Contains("Coffee") to i.Name.Equals("Coffee"). This change resolves an issue where the previous logic could mistakenly match assemblies with similar names containing 'Coffee', leading to the wrong assembly being selected.

[1.7.3] - 2024-08-16

Changed

  • Assembly Selection Logic: Updated the logic to identify the correct assembly by modifying the condition from !i.FullName.Contains("Coffee") && i.FullName.Contains(".Application") to !i.FullName.Contains("Coffee.Application") && i.FullName.Contains(".Application"). This change was necessary due to a conflict introduced by a previous project name contains 'Coffee', which caused the original condition to inadvertently exclude the correct assemblies.

[1.7.2] - 2024-08-13

Changed

  • Network File Download Logic: The method for downloading files from an HTTP(S) source has been updated to use WebClient instead of HttpClient. The previous implementation with HttpClient involved manually handling the file stream, but now WebClient.DownloadFile simplifies this process by directly handling the file download.
  • File Handling: Added a check to delete the existing file at fsPath if it already exists before downloading a new one. This prevents any potential conflicts or errors caused by trying to overwrite an existing file.

[1.7.1] - 2024-07-24

Changed

  • Updated logic to determine the appropriate variable name for the parent model's ID in DapperUpdateModelUtils. The variable name now checks if lastInsertVariableIdPrefix contains a number and uses it accordingly. This ensures proper handling of foreign key variables in SQL generation.

[1.7.0] - 2024-07-20

Added

  • Introduced QueueSettings to CoffeeAppSettings, allowing configuration of global and email-specific restriction times for queue processing.
  • Implemented QueueService to support task queuing with time restrictions, ensuring tasks are only executed within specified time windows.
  • Added CoffeeMailService which utilizes the new QueueService for scheduling emails with time restrictions.
  • Integrated Flurl.Http for HTTP request building in RequestBuilderService.

Changed

  • Updated CoffeeMailService to use global queue settings if email-specific settings are not provided.
  • Refactored QueueService to utilize CoffeeAppSettings for global configuration, enhancing flexibility and maintainability.
  • Enhanced QueueService to handle UTC time comparisons for task execution, ensuring consistency across different environments.

Fixed

  • Corrected SQL generation logic in SQLBuilder.cs to handle date and time formats accurately.
  • Resolved issue in DapperUpdateModelUtils where incorrect date formats were causing SQL execution errors.
  • Addressed a bug in SQLGeneratorPropertyBuilderListTest to ensure nested model and list handling is accurate.
  • Ensured proper processing of tasks in QueueService to avoid leaving tasks in the queue unnecessarily.

[1.6.4] - 2024-07-13

Fixed

  • Resolved an issue where inserting a model with list that has elements with same parent woudn´t work.

[1.6.3] - 2024-07-13

Fixed

  • Resolved an issue where calling DeleteNotInList with an empty list or null wouldn't generate the expected SQL, resulting in GenerateSqlForModel returning an empty string.

Added

  • Introduced the ability to directly invoke the following methods on Update():
    • DeleteNotInList<TProp>(Expression<Func<T, IList<TProp>>> expression): Specifies that records not present in a specified list should be deleted.
    • InsertWhereIdZero<TProp>(Expression<Func<T, IList<TProp>>> expression): Specifies that a new record should be inserted for items in a list with an ID of zero.

[1.6.2] - 2024-07-12

Fixed

  • Ensured that the final SQL statement generated by GenerateSqlForModel removes any duplicate semicolons, replacing sequences like "; ; ;" or ";;" with a single ";".

[1.6.0] - 2024-07-10

Added

  • Added logging for duplicate properties, where properties, and whereIn properties in ModelPropertyBuilder. This ensures that duplicates are not added and appropriate messages are logged.
  • Introduced a new GenerateSqlForModelList method that accepts a list of indexes, allowing for customized handling of SQL generation for lists.
  • Added new test cases in ModelPropertyBuilderTest to validate the non-duplication logic for properties, where properties, and whereIn properties.

Fixed

  • Corrected SQL generation order by ensuring nested SQL statements that set LAST_INSERT_ID are placed before SQL statements that reference those variables.
  • Updated DapperExtensionUtils.IsList method to accurately check if a type is a list.
  • Fixed the grouping of properties in GenerateSqlForModel to handle INSERT_WHERE_ID_ZERO and DELETE_NOT_IN_LIST types correctly.
  • Adjusted the SQL generation logic to properly handle scenarios where a parent model and its nested models have interdependent foreign key references.
  • Improved the logic in GenerateSqlForModel to avoid adding duplicate dynamic parameters when processing nested models.

Changed

  • Refactored ModelPropertyBuilder methods to use private helper methods for adding properties and where properties, ensuring consistency and avoiding duplicates.
  • Enhanced SQL generation for nested models to ensure foreign key constraints are properly handled when the nested model's ID is zero.
  • Updated GenerateSqlForModelList to filter values and return both the value and its index, improving accuracy in SQL generation for list properties.

[1.5.11] - 2024-07-05

Added

Introduced new test case in SQLGeneratorListAndNestedModelTest to validate SQL generation for inserting models with nested model and objects, ensuring complex nested structures are handled correctly. Added new test cases in SQLGeneratorNestedModelTest to cover scenarios with nested models and lists, ensuring accurate SQL generation and parameter handling.

Changed

Improved logic in GenerateSqlForModel method to fix issues with naming conventions for generated SQL, ensuring proper handling of nested model structures. Refactored SQL generation logic to correctly order SQL statements and LAST_INSERT_ID settings, ensuring proper dependency handling between nested models and lists. Added comments to all model classes in Coffee.NetCore.Tests.Models to improve code readability and maintainability.

[1.5.10] - 2024-07-02

Added

Introduced new test case in SQLGeneratorListAndNestedModelTest to validate SQL generation for inserting models with nested model and objects, ensuring complex nested structures are handled correctly.

Changed

Fix some issues found on GenerateSqlForModel that would cause bad name convention for generate sql.

[1.5.0] - 2024-06-27

Added

  • Introduced AppendSqlPart method in DapperUpdateModelUtils.cs to streamline the appending process of SQL segments, ensuring proper formatting and semicolon management.
  • Added new tests in SQLGeneratorPropertyBuilderModelListTest.cs to cover cases focusing on updating lists and handling nested models within these lists.
  • Enhanced Index.cs with additional models to support broader testing scenarios.

Changed

  • Modified DapperModelPropertyBuilder.cs to adjust InsertWhereIdZero and DeleteNotInList methods, ensuring PropertyType is assigned using the expression's ReturnType and confirming the property is an IList.
  • Updated DapperUpdateModelUtils.cs to enhance the GenerateSqlForModel method, improving handling of foreign keys and nested models within lists. This ensures SQL generation accurately handles complex nested structures.
  • Revised assertions in DapperModelPropertyBuilderTest.cs in the DeleteNotInList and InsertWhereIdZero tests to verify the property type is IList.
  • Implemented additional logic in DapperUpdateModelUtils.cs to handle scenarios where no direct properties of the model are updated, focusing solely on lists or nested models.

[1.4.0] - 2024-06-26

Added

  • Comprehensive tests for PropertyBuilder functionality in ModelPropertyBuilderTest.
  • SQL generation tests in SQLGeneratorPropertyBuilderModelTest for simple models.
  • SQLGeneratorPropertyBuilderNestedModelTest to ensure correct handling of nested models.
  • New models in Index.cs for comprehensive testing.
  • SQLGeneratorPropertyBuilderModelListTest for testing updates involving list operations, specifically insertions and deletions.
  • 'NotIn' constant to SqlBuilderType for enhanced SQL condition flexibility.
  • PersonalInfo model in Index.cs to enhance testing capabilities.

Changed

  • Refactored DapperModelPropertyBuilder and DapperUpdateModelUtils to improve SQL generation logic for nested models.
  • Updated Index.cs and related models to support new testing frameworks and SQL generation methods.
  • Enhanced GenerateSqlForModel in DapperUpdateModelUtils to improve handling of inserts and deletes within lists.
  • Updated DapperUpdateModel to utilize the revised DapperUpdateModelUtils and integrated PropertyBuilder for streamlined updates.

[1.3.0] - 2024-06-19

Added

  • Implemented tests for newly added functionalities.
  • Added GenerateSqlForModelList to handle SQL generation for lists.
  • Added SetModelPropertiesFromQueryFromList to set model properties from a query for list data structures.
  • Modified ExecuteBaseSave to utilize GenerateSqlForModelList and SetModelPropertiesFromQueryFromList for operations involving lists.

[1.2.13] - 2024-05-28

Added

  • Added logic to handle cases where the property type name differs from the property name when parentModel is null.
  • Included a check to update data retrieval logic when treePath is not empty and contains a single segment.

[1.2.12] - 2024-05-27

Added

  • Added parentModel parameter to the GetModelSQL method to handle parent-child relationships effectively.

Changed

  • Refactored GetModelSQL<TModel> method to include logic for managing parent models during SQL generation.
  • Enhanced recursive SQL generation to correctly handle nested submodels and their foreign keys.
  • Improved property and foreign key handling to ensure accurate SQL statements for complex model structures.
  • Adjusted SQL variable binding and parameter addition logic to accommodate the new parentModel parameter.
  • Updated method documentation to reflect the changes and new functionality.
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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. 
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
1.8.3 102 8/4/2025
1.8.2 91 7/28/2025
1.8.1 250 4/25/2025
1.8.0 216 4/3/2025
1.7.6 302 1/13/2025
1.7.5 350 9/25/2024
1.7.4 192 8/17/2024
1.7.3 160 8/16/2024
1.7.2 569 8/13/2024
1.7.1 212 7/25/2024
1.7.0 183 7/19/2024
1.6.4 177 7/13/2024
1.6.3 139 7/13/2024
1.6.2 148 7/12/2024
1.6.0 144 7/11/2024
1.5.11 195 7/5/2024
1.5.10 132 7/2/2024
1.5.0 139 6/27/2024
1.4.0 154 6/26/2024
1.3.1 143 6/26/2024
1.3.0 188 6/19/2024
1.2.13 194 5/28/2024
1.2.12 145 5/27/2024
1.2.10 142 5/26/2024
1.2.1 138 5/24/2024
1.2.0 196 5/23/2024
1.1.31 229 5/16/2024
1.1.30 130 5/16/2024
1.1.25 157 5/16/2024
1.1.24 158 5/16/2024
1.1.23 202 5/13/2024
1.1.22 137 5/13/2024
1.1.21 146 5/13/2024
1.1.20 155 5/10/2024
1.1.19 172 5/9/2024
1.1.18 141 5/9/2024
1.1.17 148 5/8/2024
1.1.16 176 5/4/2024
1.1.15 141 4/24/2024
1.1.13 147 4/23/2024
1.1.12 146 4/23/2024
1.1.11 162 4/17/2024
1.1.10 187 4/8/2024
1.1.6 156 4/8/2024
1.1.5 142 4/4/2024
1.1.2 302 4/1/2024
1.1.1 237 3/26/2024
1.1.0 174 3/20/2024
1.0.11 187 3/17/2024
1.0.10 152 3/6/2024
1.0.8 164 3/6/2024
1.0.7 168 3/6/2024
1.0.6 172 3/5/2024
1.0.5 127 3/5/2024
1.0.0 154 2/28/2024
0.11.15 149 2/18/2024
0.11.14 186 2/6/2024
0.11.13 156 1/29/2024
0.11.12 235 1/23/2024
0.11.10 158 1/19/2024
0.11.0 151 1/19/2024
0.10.15 158 1/17/2024
0.10.9 155 1/16/2024
0.10.8 155 1/16/2024
0.10.7 162 1/16/2024
0.10.6 160 1/15/2024
0.10.5 151 1/15/2024
0.10.0 143 1/15/2024
0.9.6 300 12/5/2023
0.9.5 171 12/3/2023
0.9.3 241 10/7/2023
0.9.2 279 10/2/2023
0.9.1 193 9/30/2023
0.9.0 180 9/24/2023
0.8.2 240 9/15/2023
0.8.0 188 9/15/2023
0.7.2 231 9/11/2023
0.7.0 234 8/31/2023
0.6.5 188 8/30/2023
0.6.3 209 8/28/2023
0.6.2 203 8/28/2023
0.6.0 206 8/24/2023
0.5.9 194 8/24/2023
0.5.8 191 8/23/2023
0.5.7 182 8/23/2023
0.5.6 193 8/23/2023
0.5.5 201 8/23/2023
0.5.4 186 8/23/2023
0.5.3 205 8/22/2023
0.5.0 201 8/22/2023
0.4.0 225 8/21/2023
0.3.0 203 8/17/2023
0.2.10 214 8/13/2023
0.2.5 472 8/10/2023
0.2.0 256 8/3/2023
0.1.1 232 7/20/2023
0.1.0 235 7/17/2023
0.0.40 204 7/11/2023
0.0.35 206 7/11/2023
0.0.30 233 6/28/2023
0.0.28 240 6/9/2023
0.0.27 237 6/9/2023
0.0.26 230 6/3/2023
0.0.25 249 5/30/2023
0.0.24 225 5/29/2023
0.0.23 222 5/29/2023
0.0.22 233 5/25/2023
0.0.21 232 5/24/2023
0.0.20 292 5/14/2023
0.0.19 224 5/13/2023
0.0.18 204 5/13/2023
0.0.17 215 5/8/2023
0.0.16 229 5/8/2023
0.0.15 226 5/8/2023
0.0.14 266 5/1/2023
0.0.13 249 4/30/2023
0.0.12 234 4/30/2023
0.0.11 255 4/30/2023
0.0.10 250 4/27/2023
0.0.9 267 4/23/2023
0.0.8 262 4/23/2023
0.0.7 294 4/11/2023
0.0.6 280 4/11/2023
0.0.5 317 3/26/2023
0.0.4 309 3/26/2023
0.0.3 328 3/26/2023
0.0.2 311 3/26/2023
0.0.1 327 3/26/2023