public FichaController(IFichaFuncionalRepository fichaRepository, CarrinhoFicha carrinho, ILoggerFactory loggerFactory) { _fichaRepository = fichaRepository; _carrinho = carrinho; _loggerFactory = loggerFactory; }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddDbContext <AppGestaoContext>(cfg => { cfg.UseSqlServer(_config.GetConnectionString("StringConexaoBancoGestao")); }); services.BuildServiceProvider().GetService <AppGestaoContext>().Database.Migrate(); // Comentarios // Aqui trago a funcionalidade de trabalhar com altenticação. // Falo aqui para usar o Entity Framework para armazenar os dados. services.AddIdentity <ApplicationUser, IdentityRole>( options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores <AppGestaoContext>() .AddDefaultUI() .AddDefaultTokenProviders(); //Aqui vou registrar o serviço para poder usar Claims( ver Identity/) services.AddScoped <IUserClaimsPrincipalFactory <ApplicationUser>, ApplicationUserClaimsPrincipalFactory>(); //Registrando o EmailSender usando o SengGrid services.AddTransient <IEmailSender, EmailSender>(); //Autenticação com google services.AddAuthentication().AddGoogle(googleOptions => { googleOptions.ClientId = _config["Authentication:Google:ClientId"]; googleOptions.ClientSecret = _config["Authentication:Google:ClientSecret"]; }); services.AddTransient <Seeder>(); // Comentarios: // Lembrar que tenho que criar os AutoMapper profiles, que são uma maneira // de configurar o mapeamento que for usar. services.AddAutoMapper(Assembly.GetExecutingAssembly()); services.AddControllersWithViews() .AddNewtonsoftJson(options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore); services.AddRazorPages();// Preciso dele porque o Identity usa razor pages services.AddTransient <IRepository, GestaoRepository>(); services.AddTransient <IProgressoesRepository, ProgressoesRepository>(); services.AddTransient <ICarreiraRepository, CarreiraRepository>(); services.AddTransient <IFuncionarioRepository, FuncionarioRepository>(); services.AddTransient <IFichaFuncionalRepository, FichaFuncionalRepository>(); // Comentários: // Visto que estou usando Sessions, tenho que registrar esse serviço que // vai me dar acesso ao contexto services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddMemoryCache(); services.AddSession(); // Com esse serviço eu pego o carrinho da section. // Temos aqui um objeto criado para cada requisição. Se duas pessoas solicitarem // o objeto carrinho de ficha ao mesmo tempo, eles obtem instancias diferentes. // Porque é criado um objeto para cada requisição services.AddScoped(carrinhoFicha => CarrinhoFicha.GetCarrinho(carrinhoFicha)); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }
public FichaFuncionalRepository(AppGestaoContext appGestaoContext, CarrinhoFicha carrinhoFicha) { this._appGestaoContext = appGestaoContext; this._carrinhoFicha = carrinhoFicha; }
public CarrinhoFichaController(IRepository contextFuncionario, CarrinhoFicha carrinhoFicha) { this._contextFuncionario = contextFuncionario; this._carrinhoFicha = carrinhoFicha; }