Nessa demo iremos criar uma opção de configuração para restrição de horário:
Em appsettings
coloque os horários de início e fim para execução de compra/pedido:
"OpeningTime": {
"StartAt": "08:00:00",
"FinishAt": "18:00:00"
}
Crie um modelo com as propriedades de acordo com o que foi definido em appsettings:
using System;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace DevFreela.API.Models
{
public class OpeningTimeOption
{
public TimeSpan StartAt { get; set; }
public TimeSpan FinishAt { get; set; }
}
}
Em Startup
configure a classe
do modelo para referenciar a seção criada no appsettings
:
public void ConfigureServices(IServiceCollection services)
{
//Serviço de Configuração da interface IConfiguration, Classe criada, seção que representa esses dados.
//Ele cria uma instância dessa configuração, batendo os dados criados no appsettings com o modelo de classe OpeningTimeOption
services.Configure<OpeningTimeOption>(Configuration.GetSection("OpeningTime"));
[...]
}
Na controladora, ProjectsController
use:
- Crie uma váriavel privada apenas para leitura referenciando a classe criada;
- No construtor, use a interface
IOptions<nome_classe>
;
[Route("api/[controller]")]
public class ProjectsController : ControllerBase
{
private readonly OpeningTimeOption _option;
public ProjectsController(IOptions<OpeningTimeOption> option)
{
_option = option.Value;
}
[...]
}
Ao executar a aplicação obtivemos o seguinte resultado:
-
Visual Studio:
No projeto clique com o botão direito do mouse, em seguida properties (Alt + Enter), em Debug > Environment variables coloque
ASPNETCORE_ENVIRONMENT
comoName
e o ambiente emValue
: -
Linha de comando:
set ASPNETCORE_ENVIRONMENT="Development"
set ASPNETCORE_ENVIRONMENT="Staging"
set ASPNETCORE_ENVIRONMENT="Production"
Executar a aplicação:
dotnet run