Templaty.Postgres 1.0.1

dotnet add package Templaty.Postgres --version 1.0.1
                    
NuGet\Install-Package Templaty.Postgres -Version 1.0.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="Templaty.Postgres" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Templaty.Postgres" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Templaty.Postgres" />
                    
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 Templaty.Postgres --version 1.0.1
                    
#r "nuget: Templaty.Postgres, 1.0.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 Templaty.Postgres@1.0.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=Templaty.Postgres&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Templaty.Postgres&version=1.0.1
                    
Install as a Cake Tool

Templaty - PostgreSQL store

1. Introduction

Templaty - Postgres store - is a store based on PostgreSQL DB providing developers easy way to store their content into Postgres DB.

1.1 Use cases

  1. Template content should be stored into PostgreSQL DB;
  2. Template content may change over time in live time;

2. Quick start

To use Templaty.Postgres you have to enable Templaty as well.

First of all, you need to import Templaty.Postgres as package;

dotnet add package Templaty.Postgres

2.1 ASP.NET with EF Core

To use Templaty.Postgres into ASP.NET projects just using into Startup or Program:

builder.Services.UseTemplaty(configator => configator.AddResourceStoreAssembly(typeof(Program).Assembly));
builder.Services.AddTemplatyPostgresStore<YourDbContext>();

Templaty.Postgres requires EF Core library to use Postgres as store. Therefore you need to add ContentConfiguration into your DbContext or write it by your self.

public sealed class YourDbContext : DbContext
{
    //..

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.ApplyConfiguration(new ContentConfiguration());
        // ...
    }

    // ...
}

After database will be updated you will be able to use Postgres as the store.

2.2 Make your own template

Let's look at an example into project Templaty.Templaty.PostgresStoreSample (see Samples).

  1. Create template content and put it into table contents;
Date: {{date}}
Temperature: {{temperature}} °C
Summary: {{summary}}
  1. Create a model with data WheaterDistributionTemplate;
[Template.Source("Notifications_WheaterDistributionTemplate", Template.StoreType.Postgres)]
internal sealed record WheaterDistributionTemplate(DateOnly Date, int Temperature, string? Summary) : ITemplate;
  1. Use ITemplateBuilder to get end-message from template;
var template = new WheaterDistributionTemplate(
    DateOnly.FromDateTime(DateTime.Now.AddDays(2)),
    Random.Shared.Next(-20, 55),
    Summaries[Random.Shared.Next(Summaries.Length)]
 );

var result = await _templateBuilder.LoadAndBuild(template);

Result will be something like that:

Date: 16.03.2025
Temperature: 8 °C
Summary: Balmy
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.0.1 110 7/14/2025