KempDec.StarterDotNet.AppRoutes
0.2.0
See the version list below for details.
dotnet add package KempDec.StarterDotNet.AppRoutes --version 0.2.0
NuGet\Install-Package KempDec.StarterDotNet.AppRoutes -Version 0.2.0
<PackageReference Include="KempDec.StarterDotNet.AppRoutes" Version="0.2.0" />
paket add KempDec.StarterDotNet.AppRoutes --version 0.2.0
#r "nuget: KempDec.StarterDotNet.AppRoutes, 0.2.0"
// Install KempDec.StarterDotNet.AppRoutes as a Cake Addin
#addin nuget:?package=KempDec.StarterDotNet.AppRoutes&version=0.2.0
// Install KempDec.StarterDotNet.AppRoutes as a Cake Tool
#tool nuget:?package=KempDec.StarterDotNet.AppRoutes&version=0.2.0
StarterDotNet
StarterDotNet é uma biblioteca que fornece utilitários para projetos .NET.
Índice
Instalação
Instale a biblioteca a partir do NuGet.
Install-Package KempDec.StarterDotNet
Esse pacote incluirá tudo do StarterDotNet, mas você pode optar por instalar apenas uma parte dele. Para isso consulte a seção que deseja.
Rotas do aplicativo
Instalação
Você pode optar por instalar apenas essa parte da biblioteca a partir do NuGet.
Install-Package KempDec.StarterDotNet.AppRoutes
Como usar
Você pode usar IAppRoute
e AppRouteBase
para ajudá-lo a usar as rotas do seu aplicativo.
Eles permitem que você pré-construa as rotas e depois apenas as usem de forma fácil e clara, definindo todos os parâmetros que são necessários e facilitando a manutenção do código caso alguma regra na sua rota mude.
@* Ao invés de: *@
<a href="/profile/@_profile.Id/orderhistory?status=@_orderStatus"></a>
<a href="/start?email=@_email"></a>
<a href="/start?email=@_email&redirectUrl=@_currentUrl"></a>
@* Use algo como: *@
<a href="@AppRoute.Profile.OrderHistory(_profile.Id, _orderStatus)"></a>
<a href="@AppRoute.Start(_email)"></a>
<a href="@AppRoute.Start(_email, _currentUrl)"></a>
Para isso, crie uma rota do aplicativo, de maneira semelhante a abaixo:
// Rota da página /start.
public sealed class StartAppRoute(string? email = null, string? redirectUrl = null) : AppRouteBase("/start")
{
protected override Dictionary<string, string?> Params { get; } = new()
{
{ "email", email },
{ "redirectUrl", redirectUrl }
};
}
// Rota da página /profile/{profileId}/orderhistory.
public sealed class OrderHistoryAppRoute(int profileId, OrderStatusType? orderStatus = null)
: AppRouteBase($"/profile/{profileId}/orderhistory")
{
protected override Dictionary<string, string?> Params { get; } = new()
{
{ "status", orderStatus?.ToString() }
};
}
// Conjunto de rotas para /profile.
public sealed class ProfilesAppRoute
{
public OrderHistoryAppRoute OrderHistory(int profileId, OrderStatusType? orderStatus = null) =>
new(profileId, orderStatus);
}
E então pré-construa as rotas em uma classe estática:
public static class AppRoute
{
// Rotas para /profile.
public static ProfilesAppRoute Profile { get; } = new();
// Rota /start.
public static StartAppRoute Start(string? email = null) => new(email);
}
ASP.NET Core Identity
Instalação
Você pode optar por instalar apenas essa parte da biblioteca a partir do NuGet.
Install-Package KempDec.StarterDotNet.Identity
Como usar
Você pode usar a extensão GetPropertyName()
para ajudá-lo em validações de erros do ASP.NET Core Identity.
Ele é útil quando você usa um modelo de validação que relaciona o nome da propriedade com o erro, como DataAnnotation ou FluentValidation.
IdentityResult result = await UserManager.CreateAsync(user, _input.Password);
if (!result.Suceeded)
{
// Neste caso os erros de nome de usuário terão o nome da propriedade como "Email".
//
// As propriedades já tem nomes definidos por padrão que são comumente usados, como os erros de e-mail,
// que terão o nome da propriedade como "Email" a menos que você mude, assim como acontece abaixo com os
// erros de nome de usuário.
var propertyNames = new IdentityErrorPropertiesName(username: nameof(_input.Email));
foreach (IdentityError error in result.Errors)
{
string propertyName = error.GetPropertyName(propertyNames);
ModelState.AddModelError(propertyName, error.Description);
}
}
Autores
- KempDec - Mantedora do projeto de código aberto.
- Vinícius Lima - Desenvolvedor .NET C#.
Notas de lançamento
Para notas de lançamento, confira a seção de releases do StarterDotNet.
Licença
Product | Versions 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. |
-
net8.0
- Microsoft.AspNetCore.WebUtilities (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on KempDec.StarterDotNet.AppRoutes:
Package | Downloads |
---|---|
KempDec.StarterDotNet
StarterDotNet é uma biblioteca que fornece utilitários para projetos .NET. |
GitHub repositories
This package is not used by any popular GitHub repositories.