Aethel.Services.Trazor 1.0.0

dotnet add package Aethel.Services.Trazor --version 1.0.0                
NuGet\Install-Package Aethel.Services.Trazor -Version 1.0.0                
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="Aethel.Services.Trazor" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Aethel.Services.Trazor --version 1.0.0                
#r "nuget: Aethel.Services.Trazor, 1.0.0"                
#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.
// Install Aethel.Services.Trazor as a Cake Addin
#addin nuget:?package=Aethel.Services.Trazor&version=1.0.0

// Install Aethel.Services.Trazor as a Cake Tool
#tool nuget:?package=Aethel.Services.Trazor&version=1.0.0                

Trazor

Version inicial

Constructor de plantillas para correo basado en la arquitectura mvc, utilizando el motor de renderizado de Razor que permite diseñar correos como aplicaciones web, permitiendo compartir estilos, crear componentes reutilizables y dividir en componentes. Ademas, permite mantener todas tus plantillas en una libreria de clases diferente a la del proyecto principal, permitiendo compartir el servicio de renderizado. Cuenta ademas con las propiedades de Razor para la generacion dinamica de plantillas a traves de modelos de vista

Features

  • Generacion de plantillas de correo basados en la arquitectura MVC de razor
  • Permite tener estilos compartidos para tus correos
  • Permite agilizar la creacion de correos sin preocuparte por el diseño
  • Permite crear componentes reutilizables

Configuracion

Para integrar Trazor y habilitarlo como el servicio de plantillas solo necesitas dos cosas. Primero, necesitas generar un proyecto de clases donde vas a colocar tus templates y tus templateModels, en una estrcutura de carpeta similar a la siguiente:

Folder Structure

Con esta estructura ahora podemos configurar Trazor. Dentro de tu archivo startup, basta con agregar el metodo de extension como sigue y configurar las siguientes propiedades:

public class Startup(){
    // Configurations
    services.AddTrazor(opts => {
        opts.TemplateAssembly = typeof(Greeting).Assembly;
        opts.TemplateLocation = "Templates";
    });
    // More configurations
}

La propiedad TemplateAssembly debe de hacer referencia a alguna clase que este dentro de tu biblioteca de clases donde se encuentran tus correos y plantillas. La propiedad TemplateLocation te permite sobreescribir el nommbre de la carpeta de templates al nombre que prefieras. Despues de configurar Trazor, en donde necesites utilizar la libreria solo debes de inyectar la clase de fabrica como se muestra:

public class SomeClass{
    private readonly ITemplateService _templateService;
    
    public SomeClass(ITemplateFactory templateFactory){
        _templateService = templateFactory.GetTemplateService();
    }
}

De esta forma ya tenemos acceso a todas nuestras plantillas disponibles. Para llamar a las plantillas tenemos la siguiente opcion:

string content = await _templateService.GetTemplateContent(new TrazorSelector{
    Module = "IdentityManagement", 
    Template = "WelcomeToKazam"
}, new SomeModel{
    Name = "Trazor",
    Lastname = "Template"
})

TrazorSelector es una clase DTO que permite definir el modulo, en este caso una carpeta dentro de Templates y Template, que es el nombre del template a cargar. SomeModel hace referencia a cualquier modelo que tu vista necesite para renderizar. Con esto tu vista se debe generar sin ningun problema y tendras acceso a la potencia de Razor para tus correos electronicos

Versiones y fechas de lanzamiento

Version Fecha de lanzamiento Features Status
1.0.0 Mar 2020 Ubicacion del ensamblado donde estan las vistas y nombre de la carpeta que contiene la estrcutura de templates para renderizar Liberada

License

MIT

If it works, learn how it do

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. 
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.0 1,130 3/15/2022

Ubicacion del ensamblado donde estan las vistas y nombre de la carpeta que contiene la estrcutura de templates para renderizar