예제 #1
0
        public IActionResult Put(Proveedor proveedor)
        {
            var result = _context.Proveedor.Attach(proveedor);

            _context.Entry(proveedor).State = EntityState.Modified;
            _context.SaveChanges();

            return(Ok(result.Entity));
        }
예제 #2
0
        public IActionResult Put(Cliente cliente)
        {
            var result = _context.Cliente.Attach(cliente);

            _context.Entry(cliente).State = EntityState.Modified;
            _context.SaveChanges();

            return(Ok(result.Entity));
        }
예제 #3
0
        public IActionResult Put(Categoria categoria)
        {
            var result = _context.Categoria.Attach(categoria);

            _context.Entry(categoria).State = EntityState.Modified;
            _context.SaveChanges();

            return(Ok(result.Entity));
        }
예제 #4
0
        public IActionResult Post([FromBody] PedidoDto dto)
        {
            // Consulta los id de producto enviados por el frontend
            var     products = _context.Producto.Where(x => dto.ListaProductos.Select(s => s.IdProducto).Contains(x.Id));
            decimal total    = 0;

            // Calcula el valor total del pedido multiplicando el precio de cada producto por su cantidad y sumandolo
            foreach (var producto in products)
            {
                var cantidad = dto.ListaProductos.First(x => x.IdProducto == producto.Id).Cantidad;
                total += cantidad * producto.Precio;
            }

            var pedido = new Pedido
            {
                IdCliente  = dto.IdCliente,
                IdUsuario  = dto.IdUsuario,
                ValorTotal = total,
                CreatedOn  = DateTime.Now
            };

            var result = _context.Pedido.Add(pedido);

            _context.SaveChanges();

            foreach (var item in dto.ListaProductos)
            {
                Producto producto = _context.Producto.First(x => x.Id == item.IdProducto);

                producto.Stock -= item.Cantidad;
                _context.Producto.Attach(producto);
                _context.Entry(producto).State = EntityState.Modified;
                _context.SaveChanges();

                var productItem = new PedidoProducto
                {
                    IdPedido   = result.Entity.Id,
                    IdProducto = item.IdProducto,
                    Cantidad   = item.Cantidad,
                    ValorTotal = item.Cantidad * producto.Precio
                };

                _context.PedidoProducto.Add(productItem);
                _context.SaveChanges();
            }

            return(Created("", result.Entity));
        }
예제 #5
0
        public IActionResult PostRecuperarCuenta([FromBody] RecoverPasswordEmail email)
        {
            var user = _context.Usuarios.FirstOrDefault(x => x.Correo == email.Email);

            if (user != null)
            {
                user.TokenExpiration = DateTime.Now.AddDays(1);
                user.Token           = Guid.NewGuid();
                var result = _context.Usuarios.Attach(user);
                _context.Entry(user).State = EntityState.Modified;
                _context.SaveChanges();

                Email.send(user.Correo, user.Token, "recoverPasswordEmail", "Solicitud de recuperacion de contraseña");
                return(Ok());
            }
            return(BadRequest(new { message = "El correo no existe" }));
        }