Skip to content

Commit

Permalink
Target .NET 8
Browse files Browse the repository at this point in the history
  • Loading branch information
hbulens committed Dec 30, 2023
1 parent 61f4cfe commit 3949215
Show file tree
Hide file tree
Showing 12 changed files with 82 additions and 159 deletions.
7 changes: 2 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
# Dime.Rules
<div align="center"><img src="assets/logo.png?raw=true" width="350" alt="Logo"></div>

[![Build Status](https://dev.azure.com/dimenicsbe/Utilities/_apis/build/status/Rules%20-%20MAIN%20-%20CI?branchName=master)](https://dev.azure.com/dimenicsbe/Utilities/_build/latest?definitionId=89&branchName=master) ![Azure DevOps coverage](https://img.shields.io/azure-devops/coverage/dimenicsbe/Utilities/89?label=code%20coverage)

## Introduction

Simple rule engine.
<div align="center"><h1>Dime.Rules</h1></div>

## Getting Started

Expand Down
Binary file added assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 20 additions & 30 deletions src/core/Dime.Rules.csproj
Original file line number Diff line number Diff line change
@@ -1,32 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<PackageProjectUrl>http://www.dimenics.com</PackageProjectUrl>
<PackageReleaseNotes></PackageReleaseNotes>
<PackageTags>Rules</PackageTags>
</PropertyGroup>
<PropertyGroup>
<AssemblyTitle>Dime.Rules</AssemblyTitle>
<VersionPrefix>1.0.3</VersionPrefix>
<Authors>Dimenics</Authors>
<TargetFrameworks>netstandard2.1;net461</TargetFrameworks>
<AssemblyName>Dime.Rules</AssemblyName>
<PackageId>Dime.Rules</PackageId>
<PackageIconUrl>http://dimenuget.azurewebsites.net/Images/dimenuget.png</PackageIconUrl>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<IncludeSource>True</IncludeSource>
<IncludeSymbols>True</IncludeSymbols>
<Description>Simple business rules framework</Description>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.3</Version>
<NeutralLanguage>en</NeutralLanguage>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryUrl>https://github.com/dimenics/dime-rules</RepositoryUrl>
<RepositoryType>git</RepositoryType>
</PropertyGroup>

<PropertyGroup>
<TargetFrameworks>net8.0</TargetFrameworks>
<Authors>Dime Software</Authors>
<Company>Dime Software</Company>
<Product>Validation Rules</Product>
<Description>Route and travel time calculator</Description>
<PackageProjectUrl>https://github.com/dimesoftware/maps</PackageProjectUrl>
<PackageIconUrl>https://cdn.dime-software.com/dime-software/logo-shape.png</PackageIconUrl>
<Version>1.1.0</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbols>true</IncludeSymbols>
<NeutralLanguage>en</NeutralLanguage>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/dimesoftware/rules</RepositoryUrl>
<RepositoryType>git</RepositoryType>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup>
</Project>
9 changes: 0 additions & 9 deletions src/core/IValidationEngine.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
namespace Dime.Rules
{
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
public interface IValidationEngine<in T> where T : class
{
/// <summary>
///
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
ValidationResult Validate(T item);
}
}
18 changes: 0 additions & 18 deletions src/core/Properties/AssemblyInfo.cs

This file was deleted.

42 changes: 42 additions & 0 deletions src/core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Dime.Rules

Simple rule engine.

## Installation

Use the package manager NuGet to install the package:

```cli
dotnet add package Dime.Rules
```

## Usage

``` csharp
using Dime.Rules;

public bool Validate(MyClass item)
{
var rule1 = new ValidationRule<Customer>(x => x != null, "Item cannot be null");
var rule2 = new ValidationRule<Customer>(x => x.IsActive == true, "IsActive needs to be true");

ValidationEngine<Customer> engine = new ValidationEngine<Customer>(rule1, rule2);
ValidationResult validationResult = engine.Validate(item);
return validationResult.IsValid;
}
```

## Contributing

![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)

Pull requests are welcome. Please check out the contribution and code of conduct guidelines.

## Local development

- You must have Visual Studio 2022 Community or higher.
- The dotnet cli is also highly recommended.

## License

[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org)
13 changes: 0 additions & 13 deletions src/core/ValidationEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,15 @@

namespace Dime.Rules
{
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
public class ValidationEngine<T> : IValidationEngine<T> where T : class
{
/// <summary>
///
/// </summary>
/// <param name="rules"></param>
public ValidationEngine(params ValidationRule<T>[] rules)
{
_rules = rules.ToList();
}

private readonly IEnumerable<ValidationRule<T>> _rules;

/// <summary>
/// Executes the rules.
/// </summary>
/// <param name="item">The item.</param>
/// <returns></returns>
public virtual ValidationResult Validate(T item)
{
ValidationResult validationResult = new ValidationResult { IsValid = true };
Expand Down
9 changes: 0 additions & 9 deletions src/core/ValidationResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,10 @@

namespace Dime.Rules
{
/// <summary>
///
/// </summary>
public class ValidationResult
{
/// <summary>
/// Indicates the status of the validation run
/// </summary>
public bool IsValid { get; set; }

/// <summary>
/// Informative messages about the result of the rule evaluation
/// </summary>
public IEnumerable<string> Messages { get; set; }
}
}
9 changes: 0 additions & 9 deletions src/core/ValidationRule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,8 @@

namespace Dime.Rules
{
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
public class ValidationRule<T> where T : class
{
/// <summary>
///
/// </summary>
/// <param name="rule"></param>
/// <param name="message"></param>
public ValidationRule(Func<T, bool> rule, string message)
{
Rule = rule;
Expand Down
48 changes: 18 additions & 30 deletions src/test/Dime.Rules.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,35 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0</TargetFrameworks>
<AssemblyName>Dime.Rules.Tests</AssemblyName>
<PackageId>Dime.Rules.Tests</PackageId>
</PropertyGroup>

<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeCoverage" Version="17.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
</ItemGroup>

<PropertyGroup>
<TargetFrameworks>netcoreapp3.0;net461</TargetFrameworks>
<AssemblyName>Dime.Rules.Tests</AssemblyName>
<PackageId>Dime.Rules.Tests</PackageId>
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="2.9.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeCoverage" Version="16.6.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\core\Dime.Rules.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\core\Dime.Rules.csproj" />
</ItemGroup>

</Project>
18 changes: 0 additions & 18 deletions src/test/Properties/AssemblyInfo.cs

This file was deleted.

18 changes: 0 additions & 18 deletions tools/Nuget.config

This file was deleted.

0 comments on commit 3949215

Please sign in to comment.