Example #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");

            services.AddTransient <IProdutoRepository, ProdutoRepository>();
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            services.AddScoped <RelatorioVendasService>();

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));
            services.AddControllersWithViews();

            services.AddPaging(options => {
                options.ViewName          = "Bootstrap4";
                options.PageParameterName = "pageindex";
            });

            services.AddMemoryCache();
            services.AddSession();
        }
Example #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");

            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            //fornece uma instancia de HttpContextAcessor
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto CarrinhoCompra ao  mesmo tempo
            //elas vão obter instâncias diferentes
            services.AddScoped(sp => CarrinhoCompra.GetCarrinho(sp));

            services.AddSession();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddMemoryCache();


            services.AddDbContext <AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("AppDbContext")));
        }
Example #3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //Cria o serviço de conexão com o banco de dados
            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");

            //fornece uma instancia de HttpContextAcessor //Registra o serviço do CarrinhoCompra
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            //Cria o serviço que utiliza as clases da pasta Repository
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IComidaRepository, ComidaRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto CarrinhoCompra ao  mesmo tempo
            //elas vão obter instâncias diferentes
            //Define o carrinho para cada requisição sem ter ligação com a instância
            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));

            services.AddControllersWithViews();

            //configura o uso da Sessão
            services.AddMemoryCache();
            services.AddSession();
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");

            //fornece uma instancia de HttpContextAcessor
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            services.AddScoped <RelatorioVendasService>();

            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto CarrinhoCompra ao  mesmo tempo
            //elas vão obter instâncias diferentes
            services.AddScoped(sp => CarrinhoCompra.GetCarrinho(sp));

            services.AddControllersWithViews();
            services.AddPaging(options => {
                options.ViewName          = "Bootstrap4";
                options.PageParameterName = "pageindex";
            });

            //configura o uso da Sessão
            services.AddMemoryCache();
            services.AddSession();
        }
Example #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            services.AddMemoryCache();
            services.AddSession();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
 public PedidoController(IPedidoRepository ipedidoRepository, IClienteRepository clienteRepository, CarrinhoCompra CarrinhoCompra, AplicacaoDbContext aplicacaoDbContext)
 {
     _ipedidoRepository  = ipedidoRepository;
     _CarrinhoCompra     = CarrinhoCompra;
     _aplicacaoDbContext = aplicacaoDbContext;
     _clienteRepository  = clienteRepository;
 }
Example #7
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();

            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))
                                                 );

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AcessDenied");

            services.AddDistributedMemoryCache();
            services.AddSession();

            //registro os objetos do Repositories como serviço para serem criados quando forem necessários.
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));

            //services.AddMemoryCache();
        }
Example #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");

            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            //fornece uma instancia de HttpContextAcessor
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto CarrinhoCompra ao  mesmo tempo
            //elas vão obter instâncias diferentes
            services.AddScoped(sp => CarrinhoCompra.GetCarrinho(sp));

            services.AddMvc();

            //configura o uso da Sessão
            services.AddMemoryCache();
            services.AddSession();

            /*services.AddAuthentication().AddFacebook(facebookOptions =>
             * {
             *  facebookOptions.AppId = Configuration["Authentication:Facebook:AppId"];
             *  facebookOptions.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
             * })*/
        }
        public ActionResult CarrinhoResumo()
        {
            var carrinho = CarrinhoCompra.ObterCarrinho(this.HttpContext);

            ViewData["CarrinhoContagem"] = carrinho.ObterContagem();
            return(PartialView("CarrinhoResumo"));
        }
Example #10
0
 public BaseController(CarrinhoCompra carrinhoCompra, IProdutoRepository produtoRepository, IMapper mapper, GerenciadorCookie cookie)
 {
     _carrinhoCompra    = carrinhoCompra;
     _mapper            = mapper;
     _produtoRepository = produtoRepository;
     _cookie            = cookie;
 }
Example #11
0
 public AccountController(UserManager <IdentityUser> userManager,
                          SignInManager <IdentityUser> signInManager,
                          CarrinhoCompra carrinhoCompra)
 {
     _userManager    = userManager;
     _signInManager  = signInManager;
     _carrinhoCompra = carrinhoCompra;
 }
 public BaseController(
     CarrinhoCompra carrinhoCompra,
     IProdutoRepository produtoRepository,
     IMapper mapper)
 {
     _carrinhoCompra    = carrinhoCompra;
     _produtoRepository = produtoRepository;
     _mapper            = mapper;
 }
 public BaseController(CarrinhoCompra carrinhoCompra, IProdutoRepository produtoRepository, IMapper mapper, WSCalcularFrete frete, WSCalcularPacote pacote, CookieValorPrazoFrete cookieValorPrazoFrete, GerenciadorCookie cookie)
 {
     _carrinhoCompra        = carrinhoCompra;
     _mapper                = mapper;
     _produtoRepository     = produtoRepository;
     _frete                 = frete;
     _pacote                = pacote;
     _cookieValorPrazoFrete = cookieValorPrazoFrete;
     _cookie                = cookie;
 }
Example #14
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddDbContext <DataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Interno")));
     services.AddTransient <ICategoriaRepository, CategoriaRepository>();
     services.AddTransient <ILancheRepository, LanchesRepository>();
     services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
     services.AddScoped(c => CarrinhoCompra.GetCarrinho(c));
     services.AddControllersWithViews();
     services.AddSession();
     services.AddMemoryCache();
 }
        //
        // GET: /Store/AddToCart/5
        public ActionResult Adicionar(int id)
        {
            // Retrieve the album from the database
            var mangaAdicionado = lojaDb.Mangas
                                  .Single(manga => manga.MangaId == id);
            // Add it to the shopping cart
            var carrinho = CarrinhoCompra.ObterCarrinho(this.HttpContext);

            carrinho.Adicionar(mangaAdicionado);
            // Go back to the main store page for more shopping
            return(RedirectToAction("Index"));
        }
        //
        // GET: /CarrinhoCompra/
        public ActionResult Index()
        {
            var carrinho = CarrinhoCompra.ObterCarrinho(this.HttpContext);
            // Set up our ViewModel
            var viewModel = new CarrinhoCompraViewModel
            {
                CartItems     = carrinho.ObterCarrinhoItens(),
                CarrinhoTotal = carrinho.ObterTotal()
            };

            // Return the view
            return(View(viewModel));
        }
Example #17
0
        public CarrinhoCompra GetCarrinho(string CarrinhoCompraID)
        {
            CarrinhoCompra carrinho = _carrinho;

            if (CarrinhoCompraID == _carrinho.CarrinhoCompraID)
            {
                List <CarrinhoCompraItem> produtos = GetCarrinhoCompraItens(CarrinhoCompraID);
                carrinho.CarrinhoCompraID    = CarrinhoCompraID;
                carrinho.CarrinhoCompraItens = produtos;
                carrinho.Total = GetTotal(CarrinhoCompraID);
            }
            return(carrinho);
        }
        public CarrinhoCompra Update(CarrinhoCompra CarrinhoCompra)
        {
            if (CarrinhoCompra == null)
            {
                return(null);
            }
            var result = _repository.Update(CarrinhoCompra);

            if (result == null)
            {
                return(null);
            }
            return(result);
        }
Example #19
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
            // services.AddDbContext<AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("base")));
            services.AddDbContext <AppDbContext>(options => options.UseSqlServer(Util.GetConnectionString("base")));


            /// <summary>
            // configurando o serviço de identificação de usuario
            // passando o contexto da aplicação
            /// </summary>
            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();


            //serviço par acesso negado.
            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AcessDanied");


            //Registrando como serviço minhas interfaces pra ser usado nos controles...
            //specified = especificado  / transient = transitorio
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();  // =>transient , significa que o objeto vai ser criado toda vez que for chamado, criando um novo objeto desse servico.
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();   //=> AddSingleton   => é instanciado uma única vez... ou seja todas as chamadas "requisições" obtém o mesmo objeto.


            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto RelatorioVendasService ao  mesmo tempo
            //elas vão obter instâncias diferentes
            services.AddScoped <RelatorioVendasService>();

            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto CarrinhoCompra ao  mesmo tempo
            //elas vão obter instâncias diferentes
            services.AddScoped(sp => CarrinhoCompra.GetCarrinho(sp));             //=> é criado instancia diferentes do objeto pra cada requisição...


            //Configurando pagina com pacote de terceiros.
            services.AddPaging(options =>
            {
                options.ViewName          = "Bootstrap4";
                options.PageParameterName = "pageindex";
            });

            services.AddMemoryCache();
            services.AddSession();
            //services.AddMvc();  eu nao tinha
        }
 public IActionResult Post([FromBody] CarrinhoCompra Carrinho)
 {
     try
     {
         var result = CarrinhoCompraBusiness.Create(Carrinho);
         if (result == null)
         {
             return(NoContent());
         }
         return(Ok(result));
     }
     catch (Exception msg)
     {
         return(BadRequest("ERROR IN PROCESS THE REQUEST" + msg.Message));
     }
 }
Example #21
0
        public void ConfigureServices(IServiceCollection services)
        {
            // Configurations=>ExtensionMethods
            // --------------------------------
            services.AddDependencyInjection();
            services.AddIdentityConfiguration(Configuration);
            services.AddMyDataContextConfiguration(Configuration);



            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");
            services.Configure <ConfigurationImagens>(Configuration.GetSection("ConfigurationPastaImagens"));

            services.AddAutoMapper(typeof(Startup));

            services.AddMsgMvcConfiguration();

            services.AddDistributedMemoryCache();


            // Todo: Depois migrar para os locais corretos, fora do Mvc
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            services.AddScoped <RelatorioVendasService>();

            //cria um objeto Scoped, ou seja um objeto que esta associado a requisição
            //isso significa que se duas pessoas solicitarem o objeto CarrinhoCompra ao  mesmo tempo
            //elas vão obter instâncias diferentes
            services.AddScoped(sp => CarrinhoCompra.GetCarrinho(sp));


            services.AddControllersWithViews();
            services.AddPaging(options =>
            {
                options.ViewName          = "Bootstrap4";
                options.PageParameterName = "pageindex";
            });

            //configura o uso da Sessão
            services.AddMemoryCache();
            services.AddSession();


            services.AddRazorPages();
        }
Example #22
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            //**********************************************************************************************************************************************************
            //**********************************************************************************************************************************************************

            //registrando o contexto como um serviço para a aplicação - quando a aplicação é executada, um serviço e criado para o contexto (sessão com o banco de dados)
            services.AddDbContext <AplicacaoDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ConnectionSuperPetShop")));

            //**********************************************************************************************************************************************************
            //**********************************************************************************************************************************************************
            //Registrando um serviço para os tipos do Identity
            //o metodo AddEntityFrameworkStores adiciona a implementação da classe de sessão com o banco (Context), armazenando os tipos do Identity
            // o método  AddDefaultTokenProviders inclui para o identity recursos de fornecimento de tokens par auxiliar na troca de senha, email...
            //services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<AplicacaoDbContext>().AddDefaultTokenProviders();

            //Registrando um serviço para as interfaces, fornecendo ao controlador uma instancia da classe de implementação da interface

            //Transiente - o serviço é criado fornecendo um objeto, a cada solicitação.
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IProdutoRepository, ProdutoRepository>();
            services.AddTransient <IClienteRepository, ClienteRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();
            services.AddTransient <IUsuarioRepository, UsuarioRepository>();


            //Singleton - o serviço é criado uma unica vez para todas as requisições (O mesmo objeto para todas as requisições)
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            //Scoped - O serviço cria o objeto para cada requisição (objeto por requisição, individual)
            services.AddScoped(carrinhoCompra => CarrinhoCompra.ObterCarrinho(carrinhoCompra));

            //**********************************************************************************************************************************************************
            //**********************************************************************************************************************************************************
            services.AddMemoryCache();
            services.AddSession();
        }
Example #23
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var conexao = Configuration.GetConnectionString("DefaultConnection");

            services.AddDbContext <AppDbContext>(builder =>
                                                 builder.UseMySql(conexao, ServerVersion.AutoDetect(conexao),
                                                                  options => { options.EnableRetryOnFailure(); }));


            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));

            services.AddControllersWithViews().AddRazorRuntimeCompilation();
            services.AddSession();
        }
Example #24
0
 public PagamentoController(Cookie cookie,
                            LoginCliente loginCliente,
                            IPedidoRepository pedidoRepository,
                            IPedidoItemRepository pedidoItemRepository,
                            CarrinhoCompra carrinhoCompra,
                            IProdutoRepository produtoRepository,
                            IMapper mapper)
     : base(carrinhoCompra,
            produtoRepository,
            mapper)
 {
     _cookie               = cookie;
     _loginCliente         = loginCliente;
     _loginCliente         = loginCliente;
     _pedidoRepository     = pedidoRepository;
     _pedidoItemRepository = pedidoItemRepository;
 }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));
            services.AddMvc();

            services.AddMvc(option => option.EnableEndpointRouting = false);

            services.AddMemoryCache();
            services.AddSession();

            services.AddControllersWithViews();
        }
 public IActionResult Get(Guid id)
 {
     try
     {
         CarrinhoCompra model = _context.CarrinhosCompras.Where(x => x.Id == id).SingleOrDefault();
         if (model == null)
         {
             return(NoContent());
         }
         else
         {
             return(Ok(model));
         }
     }
     catch (Exception e)
     {
         return(StatusCode(500));
     }
 }
Example #27
0
 public ActionResult <Livro> Get(Guid id)
 {
     try
     {
         CarrinhoCompra model = Mock.Pedidos.Where(x => x.Id == id).SingleOrDefault();
         if (model == null)
         {
             return(NoContent());
         }
         else
         {
             return(Ok(model));
         }
     }
     catch (Exception e)
     {
         return(StatusCode(500));
     }
 }
Example #28
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services) // injeção de dependencia
        {
            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            //options => options.SignIn.RequireConfirmedAccount = true
            services.AddIdentity <IdentityUser, IdentityRole>(options =>
            {
                options.Password.RequiredLength         = 6;
                options.Password.RequiredUniqueChars    = 3;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireLowercase       = true;
                options.Password.RequireUppercase       = true;
                options.Password.RequireDigit           = true;
            })
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");


            services.AddTransient <ICategoriaRepository, CategoriaRepository>(); //toda vez que é requisitado cria um objeto
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            services.AddScoped <RelatorioVendasService>();

            //services.AddSingleton<IHttpContextAccessor, IHttpContextAccessor>(); //singleton: o objeto criado será utilziado para todas requisições
            services.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>(); //resolve erro do serviço acima

            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));               // mesmo criando o objeto, caso crie mais de um, serão de instancias diferentes

            services.AddControllersWithViews();

            services.AddPaging(options =>
            {
                options.ViewName          = "Bootstrap4";
                options.PageParameterName = "pageindex";
            });

            services.AddMemoryCache();
            services.AddSession();
        }
 public CarrinhoCompra Create(CarrinhoCompra CarrinhoCompra)
 {
     try
     {
         if (CarrinhoCompra == null)
         {
             return(null);
         }
         var result = _repository.Create(CarrinhoCompra);
         if (result == null)
         {
             return(null);
         }
         return(result);
     }
     catch (Exception)
     {
         return(null);
     }
 }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <IdentityUser, IdentityRole>()
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders();


            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddScoped(cp => CarrinhoCompra.GetCarrinho(cp));
            services.AddControllersWithViews();
            services.AddMemoryCache();
            services.AddSession();
        }