Beispiel #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            #region Configuração para suprimir a validação do parâmetro recebido pelo controller antes de entrar no método
            services.Configure <ApiBehaviorOptions>(op =>
            {
                op.SuppressModelStateInvalidFilter = true;
            });
            #endregion

            #region Injeção de dependência dos serviços
            GroupInvestDbContext dbContext = new GroupInvestDbContext();
            IFabricaRepositorios fabrica   = new FabricaRepositorios(dbContext);
            services.AddScoped <IUsuarioService, UsuarioService>(config =>
            {
                return(new UsuarioService(fabrica.CriarRepositorio <Usuario>() as IUsuarioRepository, fabrica));
            });
            #endregion

            services.AddControllers();

            #region Configuração do versionamento da API
            services.AddApiVersioning(config =>
            {
                config.ReportApiVersions = true;
                config.AssumeDefaultVersionWhenUnspecified = true;
                config.DefaultApiVersion = new ApiVersion(1, 0);
            });
            #endregion

            #region Configuração para retornar o erro correto "Não Autorizado" quando usuário tenta acessar um recurso da api sem se autenticar
            services.ConfigureApplicationCookie(op =>
            {
                op.Events.OnRedirectToLogin = context =>
                {
                    context.Response.StatusCode = 401;
                    return(Task.CompletedTask);
                };
            });
            #endregion
        }
 public TesteBase()
 {
     dbContext = new GroupInvestDbContext();
 }