示例#1
0
        public void Test_Bad_Param()
        {
            string actual = RandomChars.Generate(-1);

            Assert.AreNotEqual(-1, actual.Length, "length should not be less than zero");
            Assert.AreEqual(0, actual.Length, "actual length should be 0");
        }
示例#2
0
        public async Task <OperacionDto <RecuperarContraseniaRespuestaDto> > RecuperarContrasenia(RecuperarContraseniaPeticionDto peticion)
        {
            var validadModelo = ValidacionUtilitario.ValidarModelo <RecuperarContraseniaRespuestaDto>(peticion);

            if (!validadModelo.Completado)
            {
                return(validadModelo);
            }

            var entidad = await _usuarioRepositorio.BuscarPorUserName(peticion.UserName);

            if (entidad == null)
            {
                return(new OperacionDto <RecuperarContraseniaRespuestaDto>(CodigosOperacionDto.NoExiste, "Usuario no existe"));
            }

            var persona = await _personaRepositorio.ObtenerPorIdUsuario(entidad.IdUsuario);

            var nombreCompleto = default(string);

            if (persona != null)
            {
                nombreCompleto = $@"{persona.Nombre}, {persona.APaterno} {persona.AMaterno}";
            }

            var password = RandomChars.RandomString(10);

            password = Regex.Replace(password, @"[^a-zA-Z0-9]", m => "9");

            entidad.Password = Md5Utilitario.Cifrar(password, entidad.PasswordSalt);

            var html = File.ReadAllText(_appConfiguraciones.RutaTemplateRecuperarContrasenia);

            html = html.Replace("%%Nombre%%", nombreCompleto);
            html = html.Replace("%%Contrasenia%%", password);

            var asunto = "Nueva Contraseña";
            var cuerpo = html;

            var destinatarios = new List <string>();

            destinatarios.Add(persona.Correo);

            CorreoUtiliario.EnviarCorreo(asunto, destinatarios, cuerpo);

            await _usuarioRepositorio.EditarUsuario(entidad);

            return(new OperacionDto <RecuperarContraseniaRespuestaDto>(new RecuperarContraseniaRespuestaDto()
            {
                Mensaje = "Correo Enviado",
                Suceso = true
            }));
        }
示例#3
0
        public void Allwoed_Chars_Test()
        {
            string actual       = RandomChars.Generate(100);
            string CharsAllowed = "abcdefghijklmnopqrstyvwxyz";

            for (int z = 0; z < 100; z++)
            {
                for (int c = 0; c < 25; c++)
                {
                    Assert.AreNotEqual(actual, z, CharsAllowed, c, 1);
                    Assert.AreEqual(actual, z, CharsAllowed, c, 1, "generated char is not allowed");
                }
            }
        }
示例#4
0
        private static string CreateRandomJobId(string testId)
        {
            // Of the form "mabfc-inttest-joboutput-jan01-010101-1234567890abcdef"

            // Require IDs to be short so they don't push the length over the munging
            // threshold.
            if (testId.Length > 12)
            {
                throw new ArgumentException("testId must be 12 or fewer characters", nameof(testId));
            }

            // Use local time to make it easier to see which is the container for the
            // "current" test run in storage viewers.
            var timestampPart = DateTime.Now.ToString("MMMdd-HHmmss", CultureInfo.InvariantCulture).ToLowerInvariant();

            // Some randomness in case the same test class gets run twice within a
            // second.  We wouldn't expect this to happen very often, so we don't
            // need a lot of randomness, and it's more valuable to keep names below the
            // munging threshold than to reduce the risk of collisions to sub-cosmic-ray levels.
            var randomPart = RandomChars.RandomString(16);

            return($"mabfc-inttest-{testId}-{timestampPart}-{randomPart}");
        }
示例#5
0
        public void Test_Password_Eq1024()
        {
            string actual = RandomChars.Generate(1024);

            Assert.AreEqual(1024, actual.Length, "testing for 1024 symbol password failed");
        }
示例#6
0
        public void Test_Zero_Password()
        {
            string actual = RandomChars.Generate(0);

            Assert.AreEqual(0, actual.Length, "testing for none symbol password failed");
        }
示例#7
0
        public async Task <OperacionDto <RegistrarUsuarioRespuestaDto> > RegistrarUsuario(RegistrarUsuarioPeticionDto peticion)
        {
            var validaModelo = ValidacionUtilitario.ValidarModelo <RegistrarUsuarioPeticionDto>(peticion);

            if (!validaModelo.Completado)
            {
                return(new OperacionDto <RegistrarUsuarioRespuestaDto>(CodigosOperacionDto.CamposRequeridos, validaModelo.Mensajes));
            }


            //var password = RandomChars.RandomString(10);
            var password     = peticion.Password;
            var passwordSalt = RijndaelUtilitario.EncryptRijndaelToBase64(password);

            var username = "******" + DateTime.UtcNow.Year.ToString() + RandomChars.RandomFecha(5, DateTime.UtcNow.Millisecond.ToString());

            var entidad = await _usuarioRepositorio.BuscarPorUserName(username);

            while (entidad != null)
            {
                username = "******" + DateTime.UtcNow.Year.ToString() + RandomChars.RandomFecha(5, DateTime.UtcNow.Millisecond.ToString());

                if (!entidad.Username.Equals(username))
                {
                    break;
                }
            }

            var usuario = new Usuario()
            {
                Username     = username,
                Password     = Md5Utilitario.Cifrar(password, passwordSalt),
                PasswordSalt = passwordSalt
            };

            var valorUsuario = await _usuarioRepositorio.Registro(usuario);

            if (valorUsuario <= 0)
            {
                return(new OperacionDto <RegistrarUsuarioRespuestaDto>(new RegistrarUsuarioRespuestaDto()
                {
                    Mensaje = "Error al crear Usuario",
                    Suceso = false
                }));
            }

            var persona = new Persona()
            {
                Nombre          = peticion.Nombre,
                APaterno        = peticion.APaterno,
                AMaterno        = peticion.AMaterno,
                Telefono        = peticion.Telefono,
                Correo          = peticion.Correo,
                FechaNacimiento = peticion.FechaNacimiento,
                IdUsuario       = usuario.IdUsuario,
                Direccion       = peticion.Direccion
            };

            var valorPersona = await _personaRepositorio.Registro(persona);

            if (valorPersona <= 0)
            {
                return(new OperacionDto <RegistrarUsuarioRespuestaDto>(new RegistrarUsuarioRespuestaDto()
                {
                    Mensaje = "Error al crear Usuario",
                    Suceso = false
                }));
            }

            return(new OperacionDto <RegistrarUsuarioRespuestaDto>(new RegistrarUsuarioRespuestaDto()
            {
                Mensaje = "Usuario creado correctamente",
                Suceso = true
            }));
        }