Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1b2f992
TE-1 Reading TemplateDataModel from JSON (#5)
jupre003 Dec 25, 2020
e99ca46
TE-8 Extract interface for TemplateEngine<T> (ITemplateEngine<T>)
Dec 30, 2020
08bb27a
TE-13 Implemented wrapper for RazorEngineCore (first runable version)
Dec 30, 2020
319ae1a
Add RecursionTest() Method in cshtml
Dec 30, 2020
f066ac2
TE-13 Added UnitTests for RazorTemplateEngine
Dec 31, 2020
8339252
TE-3 Reformat unittests
Dec 31, 2020
275b9ad
TE-13 BugFixes and add ToDos
Dec 31, 2020
3c96665
Refactor
Dec 31, 2020
6803215
BugFix UnitTest RazorTemplateEngine
Dec 31, 2020
ee6a45e
Add NuGet official package source in Workflows
Dec 31, 2020
ce5fa9c
Refactorings
Dec 31, 2020
046625d
Improvements
Dec 31, 2020
825ae77
improvements
Dec 31, 2020
ec94da2
improvements
Dec 31, 2020
974ffce
Reformat
Dec 31, 2020
37c73df
Reformat
Dec 31, 2020
3919257
reformat
Dec 31, 2020
b0fdb22
TE-13 Add Razor Template cshtml support (#6)
jupre003 Dec 31, 2020
33e5994
Fixed Typo
Jan 1, 2021
3f7da73
Updated Description and Tags
Jan 2, 2021
f5c00d9
Renamings in TemplateEngineUnitTests
Jan 2, 2021
7e72a50
Removed Comment
Jan 2, 2021
ed943b3
Aktualisiere Ziel-Framework auf net8.0 und aktualisiere Paketversione…
jupre003 Dec 5, 2025
60cba34
Aktualisiere CI/CD-Workflows auf .NET 8.0 und verbessere die Matrix-S…
jupre003 Dec 5, 2025
5c37e68
Ändere den Veröffentlichungsprozess: Entferne die NuGet-Publish-Aktio…
jupre003 Dec 5, 2025
f37f916
bum verionnumber to 1.1.0
jupre003 Dec 5, 2025
e2c7df3
Migrate to filescoped nammespaces
jupre003 Dec 6, 2025
a33163c
Add comprehensive German documentation for TemplateEngine.Core (#11)
Copilot Dec 6, 2025
8248ee3
feat: Add Razor support as an optional extension to TemplateEngine.Co…
jupre003 Dec 6, 2025
f97f521
Merge branch 'master' into develop
jupre003 Dec 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions .github/workflows/BuildFromDevelop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,22 @@ on:
jobs:
build:

runs-on: windows-latest
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.x
- name: Install dependencies
run: dotnet restore
dotnet-version: 8.0.x
# Disable package cache to avoid lock file requirement
cache: false
- name: Restore
run: dotnet restore MbSoftLab.TemplateEngine.Core.sln
- name: Build
run: dotnet build --configuration Release --no-restore
run: dotnet build MbSoftLab.TemplateEngine.Core.sln --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
run: dotnet test MbSoftLab.TemplateEngine.Core.sln --no-restore --verbosity normal
22 changes: 13 additions & 9 deletions .github/workflows/BuildFromMaster.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,21 @@ on:
jobs:
build:

runs-on: windows-latest
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.x
- name: Install dependencies
run: dotnet restore
dotnet-version: 8.0.x
cache: false
- name: Restore
run: dotnet restore MbSoftLab.TemplateEngine.Core.sln
- name: Build
run: dotnet build --configuration Release --no-restore
run: dotnet build MbSoftLab.TemplateEngine.Core.sln --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
run: dotnet test MbSoftLab.TemplateEngine.Core.sln --no-restore --verbosity normal
27 changes: 12 additions & 15 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,17 @@ jobs:
publish-nuget:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.x
- name: Install dependencies
run: dotnet restore
dotnet-version: 8.0.x
cache: false
- name: Restore
run: dotnet restore MbSoftLab.TemplateEngine.Core.sln
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Publish to NuGet
uses: brandedoutcast/publish-nuget@v2
with:
PROJECT_FILE_PATH: MbSoftLab.TemplateEngine.Core/MbSoftLab.TemplateEngine.Core.csproj
PACKAGE_NAME: Core
VERSION_REGEX: '^\s*<PackageVersion>(.*)<\/PackageVersion>\s*$'
TAG_FORMAT: 'v*'
NUGET_KEY: ${{secrets.NUGET_API_KEY}}
run: dotnet build MbSoftLab.TemplateEngine.Core.sln --configuration Release --no-restore
- name: Pack
run: dotnet pack MbSoftLab.TemplateEngine.Core/MbSoftLab.TemplateEngine.Core.csproj --configuration Release --no-restore -o ./artifacts
- name: Push to NuGet
run: dotnet nuget push ./artifacts/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Changelog

Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/),
und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/).

## [Unveröffentlicht]

### Geändert
- Veröffentlichungsprozess aktualisiert: NuGet-Publish-Aktion durch `dotnet pack` und `dotnet nuget push` ersetzt (Commit: 5c37e68)

## [1.0.8-preview2] - Stand: Commit 5c37e68

### Hinzugefügt
- RazorTemplateEngine für komplexe HTML-Templates mit Razor-Syntax
- Unterstützung für Razor-Templates mit der `RazorTemplateEngine<T>` Klasse
- `ITemplateEngine<T>` Interface für beide Template-Engine-Implementierungen
- `ITemplateEngineConfig<T>` Interface und `TemplateEngineConfig<T>` Klasse für Konfiguration
- Erweiterungsmethoden `CreateStringFromTemplateWithJson<T>` und `LoadTemplateFromFile<T>`
- Demo-Projekt mit Razor-Template-Beispielen
- Unterstützung für parameterlose öffentliche Methoden im TemplateDataModel (Syntax: `${MethodName()}`)

### Funktionen
- Einfacher String-basierter Template-Engine (`TemplateEngine` und `TemplateEngine<T>`)
- Razor-basierter Template-Engine (`RazorTemplateEngine<T>`)
- Anpassbare Delimiter (Standard: `${` und `}`)
- Konfigurierbare NULL-Wert-Behandlung (Standard: "NULL")
- Kultur-spezifische Formatierung für Datum und Zahlen (Standard: en-US)
- JSON-Deserialisierung für TemplateDataModel
- Laden von Templates aus Dateien

### Unterstützte Datentypen
- Primitive Typen: String, Byte, Short, UShort, Long, ULong, SByte, Char
- Numerische Typen: Int16, Int32, Int64, UInt16, UInt32, UInt64, Decimal, Double
- Weitere Typen: DateTime, Boolean

### Technische Details
- Target Framework: .NET 8.0
- Assembly Version: 1.0.8.2
- Package Version: 1.0.8-preview2
- Abhängigkeit: RazorEngineCore 2020.10.1

### Build und CI/CD
- GitHub Actions Workflows für Build (Develop und Master Branch)
- GitHub Actions Workflow für Release und NuGet-Veröffentlichung
- Automatische NuGet-Package-Generierung beim Build

---

## Versions-Historie (Zusammenfassung)

Die Version 1.0.8-preview2 ist die aktuelle Entwicklungsversion mit Razor-Template-Unterstützung.

**Commit-Referenz für diese Dokumentation:** 5c37e68 (Basis-Commit für Dokumentation)
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2021 MbSoftLab

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
8 changes: 8 additions & 0 deletions MbSoftLab.TemplateEngine.Core.Razor/Documentation.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AssemblyVersion>1.1.0.0</AssemblyVersion>
<FileVersion>1.1.0.0</FileVersion>
<Version>1.1.0</Version>
<PackageVersion>1.1.0-preview</PackageVersion>
<Description>Razor-enabled extension for MbSoftLab.TemplateEngine.Core providing RazorTemplateEngine.</Description>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageTags>Template Engine Razor RazorEngineCore Html</PackageTags>
<PackageId>MbSoftLab.TemplateEngine.Core.Razor</PackageId>
<Company>MbSoftLab</Company>
<Authors>MbSoftLab</Authors>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Copyright>© 2021 - 2025 MbSoftLab</Copyright>
<PackageIcon>MbSoftLabLogo.png</PackageIcon>
<PackageProjectUrl>https://github.com/mbsoftlab/MbSoftLab.TemplateEngine.Core</PackageProjectUrl>
<RepositoryUrl>https://github.com/mbsoftlab/MbSoftLab.TemplateEngine.Core</RepositoryUrl>
<RepositoryType>Git</RepositoryType>
<DocumentationFile>Documentation.xml</DocumentationFile>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="RazorEngineCore" Version="2020.10.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="../MbSoftLab.TemplateEngine.Core/MbSoftLab.TemplateEngine.Core.csproj" />
<None Include="../MbSoftLab.TemplateEngine.Core/MbSoftLabLogo.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>

</Project>
32 changes: 32 additions & 0 deletions MbSoftLab.TemplateEngine.Core.Razor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# MbSoftLab.TemplateEngine.Core.Razor

Optionales Erweiterungspaket für MbSoftLab.TemplateEngine.Core, das die `RazorTemplateEngine<T>` bereitstellt.

## Installation

```bash
# .NET CLI
dotnet add package MbSoftLab.TemplateEngine.Core.Razor

# Oder Projekt-Referenz (Monorepo)
dotnet add <IhrProjekt>.csproj reference MbSoftLab.TemplateEngine.Core.Razor/MbSoftLab.TemplateEngine.Core.Razor.csproj
```

## Verwendung

```csharp
using MbSoftLab.TemplateEngine.Core;

public class Person : TemplateDataModel<Person>
{
public string FirstName { get; set; }
}

var person = new Person { FirstName = "Anna" };

var engine = new RazorTemplateEngine<Person>();
engine.TemplateString = "<h1>@Model.FirstName</h1>";
string html = engine.CreateStringFromTemplate(person);
```

Hinweis: `TemplateDataModel<T>` ist nun eine einfache Klasse im Core (ohne Razor-Basis). Die Razor-Engine erhält intern `Model` als Datenmodell (`template.Run(TemplateDataModel?.Model)`).
89 changes: 89 additions & 0 deletions MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
using RazorEngineCore;
using System;
using System.ComponentModel;
using System.Globalization;

namespace MbSoftLab.TemplateEngine.Core;

public class RazorTemplateEngine<T> : ITemplateEngine<T> where T : TemplateDataModel<T>

Check warning on line 8 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>'

Check warning on line 8 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>'

Check warning on line 8 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>'

Check warning on line 8 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>'
{
public string CloseingDelimiter { get { Console.WriteLine($"RazorTemplateEngine has no {nameof(CloseingDelimiter)}"); return ""; } set => Console.WriteLine($"Can not set {nameof(CloseingDelimiter)} for RazorTemplateEngine"); }

Check warning on line 10 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CloseingDelimiter'

Check warning on line 10 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CloseingDelimiter'

Check warning on line 10 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CloseingDelimiter'

Check warning on line 10 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CloseingDelimiter'
ITemplateEngineConfig<T> _config;
public ITemplateEngineConfig<T> Config

Check warning on line 12 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.Config'

Check warning on line 12 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.Config'

Check warning on line 12 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.Config'

Check warning on line 12 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.Config'
{
get => _config;
set
{
_config = value;
this.NullStringValue = _config.NullStringValue;
this.OpeningDelimiter = _config.OpeningDelimiter;
this.CloseingDelimiter = _config.CloseingDelimiter;
this.TemplateDataModel = _config.TemplateDataModel;
this.TemplateString = _config.TemplateString;
this.CultureInfo = _config.CultureInfo;
}
}
public CultureInfo CultureInfo { get { Console.WriteLine($"{nameof(RazorTemplateEngine<T>)} can not maipulate {nameof(CultureInfo)}"); return null; } set => Console.WriteLine($"{nameof(RazorTemplateEngine<T>)} can not maipulate {nameof(CultureInfo)}"); }

Check warning on line 26 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CultureInfo'

Check warning on line 26 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CultureInfo'

Check warning on line 26 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CultureInfo'

Check warning on line 26 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.CultureInfo'

public string NullStringValue

Check warning on line 28 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.NullStringValue'

Check warning on line 28 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.NullStringValue'

Check warning on line 28 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.NullStringValue'

Check warning on line 28 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.NullStringValue'
{
get => "String.Empty";
set { Console.WriteLine(new WarningException($"{nameof(RazorTemplateEngine<T>)} can not maipulate {nameof(NullStringValue)}").Message); }
}

public string OpeningDelimiter

Check warning on line 34 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.OpeningDelimiter'

Check warning on line 34 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.OpeningDelimiter'

Check warning on line 34 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (windows-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.OpeningDelimiter'

Check warning on line 34 in MbSoftLab.TemplateEngine.Core.Razor/RazorTemplateEngine.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

Missing XML comment for publicly visible type or member 'RazorTemplateEngine<T>.OpeningDelimiter'
{
get
{
Console.WriteLine(new WarningException($"RazorTemplateEngine has no {nameof(OpeningDelimiter)}").Message);
return "";
}
set
{
Console.WriteLine(new WarningException($"Can not set {nameof(OpeningDelimiter)} for RazorTemplateEngine").Message);
}
}

public T TemplateDataModel { get; set; }
public string TemplateString { get; set; }
IRazorEngine razorEngine;

public RazorTemplateEngine(IRazorEngine razorEngine)
{
this.razorEngine = razorEngine;
}

public RazorTemplateEngine()
{
razorEngine = new RazorEngine();
}

public RazorTemplateEngine(T dataModel, string templateString)
{
razorEngine = new RazorEngine();
TemplateDataModel = dataModel;
TemplateString = templateString;
}

public string CreateStringFromTemplate(string csHtmlTemplate = null)
{
TemplateString = csHtmlTemplate ?? TemplateString;
IRazorEngineCompiledTemplate template = razorEngine.Compile(TemplateString);

string result = template.Run(TemplateDataModel);
return result;
}

public string CreateStringFromTemplate(T templateDataModel)
{
TemplateDataModel = templateDataModel;
return CreateStringFromTemplate();
}

public string CreateStringFromTemplate(T templateDataModel, string csHtmlTemplate)
{
TemplateDataModel = templateDataModel;
TemplateString = csHtmlTemplate;
return CreateStringFromTemplate();
}
}
15 changes: 15 additions & 0 deletions MbSoftLab.TemplateEngine.Core.Tests/DummyJsonData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"DummyStringProp1": "DummyStringProp1Value",
"DummyIntProp1": 1,
"DummBoolProp1": true,
"DummyBoolQProp1": true,
"DummyDoubleProp1": 1.75,
"DummyDateTimeProp1": "2020-01-01T00:00:00",
"DummyInt64Prop": 1234567,
"DummyUInt16": 8,
"DummyInt16": -8,
"DummyDecimalProp": 55,
"DummyCharProp": "c",
"DummyByteProp": 255,
"DummySByteProp": -5
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="nunit" Version="4.0.1" />
<PackageReference Include="nunit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\MbSoftLab.TemplateEngine.Core\MbSoftLab.TemplateEngine.Core.csproj" />
<ProjectReference Include="..\MbSoftLab.TemplateEngine.Core.Razor\MbSoftLab.TemplateEngine.Core.Razor.csproj" />
</ItemGroup>

<ItemGroup>
<None Update="DummyJsonData.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
Loading