Set both projects (API and SPA) as startup projects
If you want to use Serilog:
-
Install Windows Azure Storage Emulator
-
Run:
AzureStorageEmulator.exe start
- set:
"AuditLogs": {
"Enabled": true}
in appsettings.json
- update-database
- add-migration <MigrationName> -Project JobOpportunities.Data -StartupProject JobOpportunities.API
- update-database
- .Net 6
- EF Core
- Moq
- NUnit
- MediatR
- FluentValidations
- FluentAssertions
- Angular 13
- Angular Material
- Audit.NET
- AzureStorageBlobs (Audit.NET.AzureStorageBlobs)
- Serilog
- Rabbitmq
(In Progress)
EFCore 6 (Sql Server)
Generic Repository
Audit.NET: Track only commands with [AuditLog] attribute.
Auth: Access token + Refresh tokens
(In Progress)
To open local storage in azure storage explorer and avoid problems:
search "mediatr".
Audit.NET loguea solo commands en Azure Storage. Ver de tener AuditLogs:Enabled en el appSettings y el emulador de azure storage local corriendo. Se crea un blob container por día con formato: "mediatrcommandlogs{DateTime.Today:yyyyMMdd}" Y luego un registro en formato json por cada command con el formato: "{ev.EventType}/{currentUser?.Id}_{DateTime.UtcNow.Ticks}.json"
Serilog está en la pipeline de MediatR y hace un log de cada request con el siguiente formato: {RequetsName}: {@User} with request {@Request}
Hay un custom logger puesto en un middleware que mide tiempo de respuestas de cada endpoint
Go to the directory where the RabbitMQ is installed.
Now, enable the rabbitmq_management plugin using the rabbitmq-plugins command as shown below.
sbin/rabbitmq-plugins enable rabbitmq_management
After enabling the rabbitmq_management plugin you should restart the RabbitMQ server as shown below.
sbin/rabbitmqctl stop
sbin/rabbitmq-server -detached
By default the management plugin runs on 15672 HTTP port.
From your browser go to http://localhost:15672
The default username and password for RabbitMQ management plugin is: guest
💡 Notice: Some resources are in Spanish
- CleanArchitecture by Jason Taylor
- Minimal API Vertical Slice Architecture by Isaac Ojeda
- C# 9 Generics by Thomas Claudius Huber
- Code C# like a pro by Jort Rodenburg
- Angular 13 Fundamentals by Lukas Ruebbelke
- Angular dark mode by Zoaib Khan
- JWT Authentication by Joydip Kanjilal
- RabbitMQ tutorials
- rabbitmq data serialisation by Andras Nemes
- Graphql doc
- Net 5 api with graphql by Mohamad Lawand
- Using dapper with asp net by Marinko Spasojevic
- MediaRBehaviors by Jimmy Bogard
- HashIds by Patrick Favre-Bulle
- UUIDs by Peter Locke
- Convert C# classes to TS interfaces by Leonardo Carreiro
- CQRS by Gary Woodfine
- ASP.NET + rabbitmq
- Ways to do DI