public string Handle(EntradaProductoRequest request)
        {
            var producto = _productoRepository.FindFirstOrDefault(p => p.Codigo == request.Codigo);
            var response = "";

            if (producto != null)
            {
                response = producto.RegistrarEntradaProducto(request.Cantidad);
                _productoRepository.Update(producto);
                _unitOfWork.Commit();
                return(response);
            }
            producto = TipoProducto.CrearProducto(request);
            response = producto.RegistrarEntradaProducto(request.Cantidad);
            if (response.Contains("Error"))
            {
                return(response);
            }
            try
            {
                _productoRepository.Add(producto);
                response = $"Se registro la entrada del producto {producto.Nombre} con una cantidad de {producto.Cantidad}";
            }
            catch (Exception e)
            {
                return("no se pudo guardar");
            }
            _unitOfWork.Commit();
            return(response);
        }
        public string Handle(SalidaProductoRequest request)
        {
            var producto = _productoRepository.FindFirstOrDefault(p => p.Codigo == request.Codigo);

            if (producto == null)
            {
                return("No existe el producto");
            }
            if (request.Tipo == "Compuesto")
            {
                return(RegistrarSalidaProductoCompuesto(request, producto));
            }

            var response = "";

            response = producto.RegistrarSalidaProducto(request.Cantidad);
            try
            {
                _productoRepository.Update(producto);
            }
            catch (Exception e)
            {
                return("no se pudo guardar");
            }
            _unitOfWork.Commit();
            return(response);
        }