Example #1
0
        public int AgregarCategoriasAProducto(IList <Category> categorias, int idProducto)
        {
            // validaciones
            if (categorias.Count <= 0)
            {
                return(0);
            }

            // validar que el id de producto exista en BD
            var producto = _cibertecContext.Products.FirstOrDefault(p => p.ProductId == idProducto);

            if (producto == null)
            {
                return(0);
            }

            if (producto.ProductCategories == null)
            {
                producto.ProductCategories = new List <ProductCategory>();
            }

            // agregar las categorias
            foreach (var categoria in categorias)
            {
                var newProductCategory = new ProductCategory {
                    CategoryId = categoria.CategoryId, ProductId = idProducto
                };
                producto.ProductCategories.Add(newProductCategory);
            }

            _cibertecContext.Commit();

            return(categorias.Count);
        }
Example #2
0
        public ActionResult GetToken(GetTokenRequest request)
        {
            // 1. Validar el usuario
            var usuario = _accountService.ValidateUser(request.Username, request.Password);

            if (usuario == null)
            {
                // devolver un 401 (no autorizado)
                return(StatusCode(401));
            }

            // 2. Crear la identidad del usuario (que viajará en el JWT)
            var identidad = new[]
            {
                new Claim(ClaimTypes.Name, usuario.Name),
                new Claim(ClaimTypes.Email, usuario.Email),
                new Claim("DNI", usuario.Dni)
            };

            // 3. Crear los elementos para la encriptación
            var key          = new SymmetricSecurityKey(Encoding.ASCII.GetBytes("cibertec12345678"));
            var credenciales = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            // 4. Generar el token
            // 4.1. Obtener la fecha de expiración del token
            var tokenExpirationDate = DateTime.Now.AddSeconds(10);

            var token = new JwtSecurityToken(
                issuer: "Cibertec",
                audience: "app-react",
                claims: identidad,
                expires: tokenExpirationDate,
                signingCredentials: credenciales
                );

            var jwtToken = new JwtSecurityTokenHandler().WriteToken(token);

            // 5. Crear el refresh token
            var refreshToken = new RefreshToken
            {
                ExpiresAt = tokenExpirationDate,
                UserId    = usuario.Id,
                Token     = Guid.NewGuid().ToString()
            };

            // 5.1. Guardar en BD
            _cibertecContext.RefreshTokens.Add(refreshToken);
            var resultado = _cibertecContext.Commit();

            // 6. Retornar el token en un objeto JSON basado en la clase GetTokenResponse
            return(Ok(new GetTokenResponse {
                AccessToken = jwtToken, RefreshToken = refreshToken.Token, ExpiresIn = 10
            }));
        }
Example #3
0
        public ActionResult Insertar(Category request)
        {
            _cibertecContext.Categories.Add(request);
            var result = _cibertecContext.Commit();

            if (result > 0)
            {
                return(Ok(request.CategoryId));
            }

            return(Ok("No se pudo insertar el registro"));
        }
        public ActionResult Insertar(Venta request)
        {
            _context.Ventas.Add(request);
            var result = _context.Commit();

            if (result > 0)
            {
                return(Ok(request.Id));
            }

            return(Ok("No se pudo insertar el registro"));
            //var registroCorrecto = _nuevaVentaService.RegistrarNuevaVenta(request);
            //if (registroCorrecto==0)
            //{
            //    return BadRequest(0);
            //}
            //return Ok(registroCorrecto);
        }
Example #5
0
        public void Registro_de_nombre_existente_debe_retornar_falso()
        {
            // 1. Preparar la prueba

            _cibertecContext.Products.Add(new Product {
                ProductName = "Repetido"
            });
            _cibertecContext.Commit();

            var nuevoProducto = new Product {
                ProductName = "repetido"
            };

            // 2. Ejecutar el método a probar
            var resultado = _productService.RegistrarProducto(nuevoProducto);

            // 3. Hacer la comprobación
            Assert.IsFalse(resultado);
        }
Example #6
0
        public ActionResult Actualizar(Proveedor proveedor)
        {
            Proveedor proveedorExistente = null;

            try
            {
                // obtener el producto de BD
                proveedorExistente = _context.Proveedores.Find(proveedor.Id);
            }
            catch (System.Exception)
            {
                return(BadRequest("No se pudo obtener la información del proveedor existente"));
            }
            // si no existe, devolver un error
            if (proveedorExistente == null)
            {
                return(BadRequest("El proveedor no existe"));
            }

            proveedorExistente.Empresa       = proveedor.Empresa == null ? proveedorExistente.Empresa : proveedor.Empresa;
            proveedorExistente.Representante = proveedor.Representante;
            proveedorExistente.NroDocumento  = proveedor.NroDocumento;
            proveedorExistente.Celular       = proveedor.Celular;
            proveedorExistente.Direccion     = proveedor.Direccion;
            proveedorExistente.Distrito      = proveedor.Distrito;
            proveedorExistente.Provincia     = proveedor.Provincia;
            proveedorExistente.Departamento  = proveedor.Departamento;

            try
            {
                var resultado = _context.Commit();

                return(Ok(resultado));
            }
            catch (System.Exception ex)
            {
                // log del error (ex)
                return(BadRequest("Ocurrió un error al tratar de grabar en BD"));
            }
        }
Example #7
0
        public ActionResult Actualizar(Producto producto)
        {
            Producto productoExistente = null;

            try
            {
                // obtener el producto de BD
                productoExistente = _context.Productos.Find(producto.ProductoId);
            }
            catch (System.Exception)
            {
                return(BadRequest("No se pudo obtener la información del producto existente"));
            }
            // si no existe, devolver un error
            if (productoExistente == null)
            {
                return(BadRequest("El producto no existe"));
            }

            productoExistente.Nombre = producto.Nombre == null ? productoExistente.Nombre : producto.Nombre;
            //productoExistente.es = product.Discontinued;
            productoExistente.Cantidad       = producto.Cantidad;
            productoExistente.Precio         = producto.Precio;
            productoExistente.CantidadMaxima = producto.CantidadMaxima;
            productoExistente.CantidadMinima = producto.CantidadMinima;
            productoExistente.Descripcion    = producto.Descripcion;
            productoExistente.Estado         = producto.Estado;

            try
            {
                var resultado = _context.Commit();

                return(Ok(resultado));
            }
            catch (System.Exception ex)
            {
                // log del error (ex)
                return(BadRequest("Ocurrió un error al tratar de grabar en BD"));
            }
        }
        public ActionResult Actualizar(Cliente cliente)
        {
            Cliente clienteExistente = null;

            try
            {
                // obtener el producto de BD
                clienteExistente = _context.Clientes.Find(cliente.Id);
            }
            catch (System.Exception)
            {
                return(BadRequest("No se pudo obtener la información del cliente existente"));
            }
            // si no existe, devolver un error
            if (clienteExistente == null)
            {
                return(BadRequest("El cliente no existe"));
            }

            clienteExistente.Nombre       = cliente.Nombre == null ? clienteExistente.Nombre : cliente.Nombre;
            clienteExistente.Apellido     = cliente.Apellido;
            clienteExistente.NroDocumento = cliente.NroDocumento;
            clienteExistente.Telefono     = cliente.Telefono;
            clienteExistente.Direccion    = cliente.Direccion;
            clienteExistente.Distrito     = cliente.Distrito;
            clienteExistente.Provincia    = cliente.Provincia;
            clienteExistente.Departamento = cliente.Departamento;

            try
            {
                var resultado = _context.Commit();

                return(Ok(resultado));
            }
            catch (System.Exception ex)
            {
                // log del error (ex)
                return(BadRequest("Ocurrió un error al tratar de grabar en BD"));
            }
        }
        public int RegistrarNuevaVenta(Venta nuevaVenta)
        {
            // validaciones
            //if (string.IsNullOrEmpty(nuevaVenta.Users))
            //{
            //    return 0;
            //}

            // agregar el proucto a BD
            _cibertecContext.Ventas.Add(nuevaVenta);
            _cibertecContext.Commit();
            return(nuevaVenta.Id);
        }
Example #10
0
        public ActionResult Actualizar(Product product)
        {
            Product productoExistente = null;

            try
            {
                // obtener el producto de BD
                productoExistente = _context.Products.Find(product.ProductId);
            }
            catch (System.Exception)
            {
                return(BadRequest("No se pudo obtener la información del producto existente"));
            }


            // si no existe, devolver un error
            if (productoExistente == null)
            {
                return(BadRequest("El producto no existe"));
            }

            productoExistente.ProductName     = product.ProductName == null ? productoExistente.ProductName : product.ProductName;
            productoExistente.Discontinued    = product.Discontinued;
            productoExistente.QuantityPerUnit = product.QuantityPerUnit;
            productoExistente.UnitPrice       = product.UnitPrice;
            productoExistente.UnitsInStock    = product.UnitsInStock;

            try
            {
                var resultado = _context.Commit();

                return(Ok(resultado));
            }
            catch (System.Exception ex)
            {
                // log del error (ex)
                return(BadRequest("Ocurrió un error al tratar de grabar en BD"));
            }
        }
Example #11
0
        public ActionResult Eliminar(int id)
        {
            // obtener la entidad que se quiere eliminar
            var Eliminar = _context.DetalleVentas.Find(id);

            if (Eliminar == null)
            {
                return(BadRequest("El DetalleVentas no existe"));
            }

            _context.DetalleVentas.Remove(Eliminar);

            return(Ok(_context.Commit()));
        }
        public bool RegistrarUsuario(User nuevoUsuario)
        {
            // validaciones
            if (string.IsNullOrEmpty(nuevoUsuario.Email) || (string.IsNullOrEmpty(nuevoUsuario.Name)) || (string.IsNullOrEmpty(nuevoUsuario.Dni)) || (string.IsNullOrEmpty(nuevoUsuario.Password)))
            {
                return false;
            }

            var ClienteConDNIRepetido = _context.Users.Where(p => p.Email.ToUpper() == nuevoUsuario.Email.ToUpper());
            if (ClienteConDNIRepetido.Count() > 0)
            {
                return false;
            }
            // agregar el proucto a BD
            _context.Users.Add(nuevoUsuario);

            return _context.Commit() > 0;
        }
Example #13
0
        public bool RegistrarProveedor(Proveedor nuevoProveedor)
        {
            // validaciones
            if (string.IsNullOrEmpty(nuevoProveedor.Empresa) || (string.IsNullOrEmpty(nuevoProveedor.NroDocumento)) || (string.IsNullOrEmpty(nuevoProveedor.Representante)))
            {
                return(false);
            }

            var DNIRepetido = _cibertecContext.Proveedores.Where(p => p.NroDocumento.ToUpper() == nuevoProveedor.NroDocumento.ToUpper());

            if (DNIRepetido.Count() > 0)
            {
                return(false);
            }
            // agregar el proucto a BD
            _cibertecContext.Proveedores.Add(nuevoProveedor);

            return(_cibertecContext.Commit() > 0);
        }
        public bool RegistrarCliente(Cliente nuevoCliente)
        {
            // validaciones
            if (string.IsNullOrEmpty(nuevoCliente.Nombre) || (string.IsNullOrEmpty(nuevoCliente.Apellido)) || (string.IsNullOrEmpty(nuevoCliente.NroDocumento)))
            {
                return(false);
            }

            var ClienteConDNIRepetido = _cibertecContext.Clientes.Where(p => p.NroDocumento.ToUpper() == nuevoCliente.NroDocumento.ToUpper());

            if (ClienteConDNIRepetido.Count() > 0)
            {
                return(false);
            }
            // agregar el proucto a BD
            _cibertecContext.Clientes.Add(nuevoCliente);

            return(_cibertecContext.Commit() > 0);
        }
Example #15
0
        public bool RegistrarProducto(Producto nuevoProducto)
        {
            // validaciones
            if (string.IsNullOrEmpty(nuevoProducto.Nombre))
            {
                return(false);
            }

            var productsWithSameName = _cibertecContext.Productos.Where(p => p.Nombre.ToUpper() == nuevoProducto.Nombre.ToUpper());

            if (productsWithSameName.Count() > 0)
            {
                // significa que existen productos registrados que tienen el mismo nombre que el que se desea registrar
                return(false);
            }
            // agregar el proucto a BD
            _cibertecContext.Productos.Add(nuevoProducto);

            return(_cibertecContext.Commit() > 0);
        }