Beispiel #1
0
        public void ObtenerUsuarioSistemaPorUsuario_Test()
        {
            var usuarioSistema = _IRepositorioUsuarioSistema.ObtenerUsuarioSistemaPorUsuario("43668598", ":),+.*,./-");

            Assert.False(usuarioSistema == null);
        }
        public ResultadoServicio <VendedorDTO> AgregarNuevoUsuarioVendedor(VendedorDTO pVendedor)
        {
            if (pVendedor == null || String.IsNullOrEmpty(pVendedor.CodigoVendedor.Trim()))
            {
                throw new ArgumentException(Mensajes.advertencia_DatosDeVendedorOCodigoDeVendedorInvalido);
            }

            var vendedor = _IRepositorioVendedor.ObtenerPorCodigo(pVendedor.CodigoVendedor);

            if (vendedor != null)
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_VendedorACrearYaExiste);
                throw new ArgumentException(Mensajes.advertencia_VendedorACrearYaExiste);
            }

            //Validaciones
            var almacen = _IRepositorioAlmacen.ObtenerPorCodigo(pVendedor.CodigoAlmacen);

            if (almacen == null)
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_AlmacenAsociadoAlVendedorNoExiste);
                throw new ArgumentException(Mensajes.advertencia_AlmacenAsociadoAlVendedorNoExiste);
            }

            var estadoVendedor = _IRepositorioEstadoVendedor.ObtenerPorCodigo(pVendedor.CodigoEstadoVendedor);

            if (estadoVendedor == null)
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_EstadoDeVendedorAsociadoAlVendedorNoExiste);
                throw new ArgumentException(Mensajes.advertencia_EstadoDeVendedorAsociadoAlVendedorNoExiste);
            }

            var usuarioSistemaRegistrador = _IIRepositorioUsuarioSistema.ObtenerUsuarioSistemaPorUsuario(pVendedor.CodigoUsuarioSistema);

            if (usuarioSistemaRegistrador == null)
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_UsuarioSistemaCreadorNuevoVendedorNoExiste);
                throw new ArgumentException(Mensajes.advertencia_UsuarioSistemaCreadorNuevoVendedorNoExiste);
            }

            var usuarioSistemaDelAcceso = _IIRepositorioUsuarioSistema.ObtenerUsuarioSistemaPorUsuario(EnumUsuarioSistema.CodigoUsuarioDeSistemaVendedorPlaya);

            if (usuarioSistemaDelAcceso == null)
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_UsuarioSistemaAccesoNuevoVendedorNoExiste);
                throw new ArgumentException(Mensajes.advertencia_UsuarioSistemaAccesoNuevoVendedorNoExiste);
            }

            VendedorDireccion direccionVendedor = new VendedorDireccion(pVendedor.DireccionPrimeroPais,
                                                                        pVendedor.DireccionPrimeroDepartamento,
                                                                        pVendedor.DireccionPrimeroProvincia,
                                                                        pVendedor.DireccionPrimeroDistrito,
                                                                        pVendedor.DireccionPrimeroUbicacion);

            var nuevoVendedor = CrearNuevoVendedor(pVendedor, almacen, estadoVendedor, usuarioSistemaRegistrador,
                                                   usuarioSistemaDelAcceso, direccionVendedor);

            GrabarNuevoVendedor(nuevoVendedor);

            if (nuevoVendedor != null)
            {
                return(new ResultadoServicio <VendedorDTO>(7, Mensajes.advertencia_VendedorCreadoSatisfactoriamente,
                                                           string.Empty, nuevoVendedor.ProyectadoComo <VendedorDTO>(), null));
            }
            else
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_CreacionNuevoVendedorFallo);
                return(new ResultadoServicio <VendedorDTO>(6, Mensajes.advertencia_CreacionNuevoVendedorFallo,
                                                           string.Empty, nuevoVendedor.ProyectadoComo <VendedorDTO>(), null));
            }
        }
        public ResultadoServicio <ModuloSistemaDTO> GestionInicioSesion(string pUsuario, string pClave, string pCodigoModuloSistema)
        {
            UsuarioSistema usuarioSistemaAcceso;
            ModuloSistema  accesosModuloSistema         = null;
            bool           esUsuarioSistemaAccesoValido = false;
            bool           esUsuarioDelVendedorValido   = false;
            string         mensajeValidacion            = string.Empty;

            if (string.IsNullOrEmpty(pUsuario.Trim()) || string.IsNullOrEmpty(pClave.Trim()))
            {
                throw new ArgumentException(Mensajes.advertencia_UsuarioOClaveNula);
            }

            //Validamos Usuario Vendedor
            Vendedor vendedorLogueado = _IRepositorioVendedor.ObtenerVendedorPorUsuario(pUsuario);

            if (vendedorLogueado != null)
            {
                //Desecriptar clave
                var claveDesencriptada = EncriptacionBasica.EncriptarYDesencriptar(pClave.Trim().ToUpper());
                esUsuarioDelVendedorValido = _IServicioDominioValidarUsuarioVendedor
                                             .ValidarUsuarioVendedor(vendedorLogueado, claveDesencriptada.Trim());

                if (esUsuarioDelVendedorValido)
                {
                    usuarioSistemaAcceso = vendedorLogueado.UsuarioSistemaAcceso;
                }
                else
                {
                    usuarioSistemaAcceso = null;
                    mensajeValidacion    = Mensajes.advertencia_UsuarioVendedorInvalido;
                }
            }
            else
            {
                //Para los que inician session como otros usuarios diferentes a Vendedores
                usuarioSistemaAcceso = _IRepositorioUsuarioSistema.ObtenerUsuarioSistemaPorUsuario(pUsuario, pClave);
            }


            //Usaurio Sistema Valido
            if (usuarioSistemaAcceso != null)
            {
                //Obtenemos privilegios del usuario
                accesosModuloSistema = _IRepositorioModuloSistema
                                       .ObtenerDerechosAccesosUsuario(usuarioSistemaAcceso.CodigoUsuarioDeSistema.Trim(), pCodigoModuloSistema.Trim());

                esUsuarioSistemaAccesoValido = _IServicioDominioValidarUsuarioSistema
                                               .ValidarUsuarioSistema(usuarioSistemaAcceso, accesosModuloSistema, pClave.Trim());

                if (!(esUsuarioSistemaAccesoValido))
                {
                    mensajeValidacion = Mensajes.advertencia_UsuarioSistemaDeVendedorInvalido;
                }
            }
            else
            {
                mensajeValidacion = Mensajes.advertencia_UsuarioSistemaInvalido;
            }


            //Validamos usuario en el dominio (PENDIENTE de implementar de una manera orientada a objetos), ej. Active Directory
            // if (esUsuarioSistemaAccesoValido)
            //     esInicioSesionValido = _IAutenticacion.ValidarInicioSesion(string.Empty, string.Empty);


            //Devolucion
            if ((esUsuarioSistemaAccesoValido == true) &&
                (accesosModuloSistema != null))
            {
                mensajeValidacion = Mensajes.advertencia_UsuarioValido;
                // LogFactory.CrearLog().LogError(mensajeValidacion);

                return(new ResultadoServicio <ModuloSistemaDTO>(7, mensajeValidacion,
                                                                string.Empty, accesosModuloSistema.ProyectadoComo <ModuloSistemaDTO>(), null));
            }
            else
            {
                mensajeValidacion = Mensajes.advertencia_UsuarioSistemaInvalidoYSinDerechos;
                LogFactory.CrearLog().LogError(mensajeValidacion);

                return(new ResultadoServicio <ModuloSistemaDTO>(6, mensajeValidacion,
                                                                string.Empty, null, null));
            }
        }