Пример #1
0
        public async Task <OperacionDto <LoginRespuestaDto> > Login(LoginPeticionDto peticion)
        {
            var operacionValidacion = ValidacionUtilitario.ValidarModelo <LoginRespuestaDto>(peticion);

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

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

            if (usuario == null)
            {
                return(new OperacionDto <LoginRespuestaDto>(CodigosOperacionDto.AccesoInvalido, "Usuario o Contraseña inválida"));
            }

            if (!Md5Utilitario.Cifrar(peticion.Password, usuario.PasswordSalt).Equals(usuario.Password))
            {
                return(new OperacionDto <LoginRespuestaDto>(CodigosOperacionDto.AccesoInvalido, "Usuario o Contraseña inválida"));
            }

            var token = $"{peticion.UserName}___{DateTime.UtcNow.ToBinary()}___HERMOZA_BIBLOMAX";

            var dto = new LoginRespuestaDto()
            {
                Suceso      = true,
                Descripcion = "Login correcto",
                Token       = RijndaelUtilitario.EncryptRijndaelToBase64(token)
            };

            return(new OperacionDto <LoginRespuestaDto>(dto));
        }
Пример #2
0
        public async Task <OperacionDto <CambiarContraseniaRespuestaDto> > CambiarContrasenia(CambiarContraseniaPeticionDto peticion)
        {
            var validaModelo = ValidacionUtilitario.ValidarModelo <CambiarContraseniaRespuestaDto>(peticion);

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

            var entidad = await _usuarioRepositorio.BuscarPorId(peticion.IdUsuario);

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

            if (!Md5Utilitario.Cifrar(peticion.Password, entidad.PasswordSalt).Equals(entidad.Password))
            {
                return(new OperacionDto <CambiarContraseniaRespuestaDto>(CodigosOperacionDto.UsuarioIncorrecto, "Contraseña inválida"));
            }

            var password = Md5Utilitario.Cifrar(peticion.NewPassword, entidad.PasswordSalt);

            entidad.Password = password;

            await _usuarioRepositorio.EditarUsuario(entidad);

            return(new OperacionDto <CambiarContraseniaRespuestaDto>(new CambiarContraseniaRespuestaDto()
            {
                Mensaje = "Contraseña cambiada correctamente",
                Suceso = true
            }));
        }
Пример #3
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
            }));
        }
Пример #4
0
        public async Task <OperacionDto <OperacionComplejoRespuestaDto> > RegistrarComplejo(RegistrarComplejoPeticionDto peticion)
        {
            var validaModelo = ValidacionUtilitario.ValidarModelo <RegistrarComplejoPeticionDto>(peticion);

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

            var entidad = await _complejoRepositorio.BuscarPorId(peticion.IdComplejo);

            if (entidad != null)
            {
                return(new OperacionDto <OperacionComplejoRespuestaDto>(new OperacionComplejoRespuestaDto()
                {
                    Mensaje = "Error al registrar Complejo",
                    Suceso = false
                }));
            }

            peticion.IdSede = RijndaelUtilitario.DecryptRijndaelFromBase64 <int>(peticion.SedeCifrado);

            var complejo = new Complejo()
            {
                Localidad = peticion.Localidad,
                Jefe      = peticion.Jefe,
                AreaTotal = peticion.AreaTotal,
                IdSede    = peticion.IdSede
            };

            var valorComplejo = await _complejoRepositorio.Registro(complejo);

            if (valorComplejo <= 0)
            {
                return(new OperacionDto <OperacionComplejoRespuestaDto>(new OperacionComplejoRespuestaDto()
                {
                    Mensaje = "Error al registrar Complejo",
                    Suceso = false
                }));
            }

            return(new OperacionDto <OperacionComplejoRespuestaDto>(new OperacionComplejoRespuestaDto()
            {
                Mensaje = "Complejo registrado correctamente",
                Suceso = true
            }));
        }
Пример #5
0
        public async Task <OperacionDto <OperacionComplejoRespuestaDto> > EditarComplejo(RegistrarComplejoPeticionDto peticion)
        {
            var validaModelo = ValidacionUtilitario.ValidarModelo <RegistrarComplejoPeticionDto>(peticion);

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

            var idComplejo = RijndaelUtilitario.DecryptRijndaelFromBase64 <int>(peticion.Id);

            var entidad = await _complejoRepositorio.BuscarPorId(idComplejo);

            if (entidad == null)
            {
                return(new OperacionDto <OperacionComplejoRespuestaDto>(new OperacionComplejoRespuestaDto()
                {
                    Mensaje = "Error al obtener datos de Complejo",
                    Suceso = false
                }));
            }

            peticion.IdSede = RijndaelUtilitario.DecryptRijndaelFromBase64 <int>(peticion.SedeCifrado);

            entidad.Localidad = peticion.Localidad;
            entidad.Jefe      = peticion.Jefe;
            entidad.AreaTotal = peticion.AreaTotal;
            entidad.IdSede    = peticion.IdSede;

            var valorComplejo = await _complejoRepositorio.EditarComplejo(entidad);

            if (valorComplejo <= 0)
            {
                return(new OperacionDto <OperacionComplejoRespuestaDto>(new OperacionComplejoRespuestaDto()
                {
                    Mensaje = "Error al actualizar Complejo",
                    Suceso = false
                }));
            }

            return(new OperacionDto <OperacionComplejoRespuestaDto>(new OperacionComplejoRespuestaDto()
            {
                Mensaje = "Complejo actualizado correctamente",
                Suceso = true
            }));
        }
Пример #6
0
        public async Task <OperacionDto <OperacionSedeRespuestaDto> > RegistrarSede(RegistrarSedePeticionDto peticion)
        {
            var validaModelo = ValidacionUtilitario.ValidarModelo <RegistrarSedePeticionDto>(peticion);

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

            var entidad = await _sedeRepositorio.BuscarPorId(peticion.IdSede);

            if (entidad != null)
            {
                return(new OperacionDto <OperacionSedeRespuestaDto>(new OperacionSedeRespuestaDto()
                {
                    Mensaje = "Error al registrar Sede",
                    Suceso = false
                }));
            }

            var sede = new Sede()
            {
                Nombre       = peticion.Nombre,
                Ubicacion    = peticion.Ubicacion,
                NroComplejos = peticion.NroComplejos,
                Presupuesto  = peticion.Presupuesto
            };

            var valorSede = await _sedeRepositorio.Registro(sede);

            if (valorSede <= 0)
            {
                return(new OperacionDto <OperacionSedeRespuestaDto>(new OperacionSedeRespuestaDto()
                {
                    Mensaje = "Error al registrar Sede",
                    Suceso = false
                }));
            }

            return(new OperacionDto <OperacionSedeRespuestaDto>(new OperacionSedeRespuestaDto()
            {
                Mensaje = "Sede registrada correctamente",
                Suceso = true
            }));
        }
Пример #7
0
        public async Task <OperacionDto <OperacionSedeRespuestaDto> > EditarSede(RegistrarSedePeticionDto peticion)
        {
            var validaModelo = ValidacionUtilitario.ValidarModelo <RegistrarSedePeticionDto>(peticion);

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

            var idSede = RijndaelUtilitario.DecryptRijndaelFromBase64 <int>(peticion.Id);

            var entidad = await _sedeRepositorio.BuscarPorId(idSede);

            if (entidad == null)
            {
                return(new OperacionDto <OperacionSedeRespuestaDto>(new OperacionSedeRespuestaDto()
                {
                    Mensaje = "Error al obtener datos de Sede",
                    Suceso = false
                }));
            }

            entidad.Nombre       = peticion.Nombre;
            entidad.Ubicacion    = peticion.Ubicacion;
            entidad.NroComplejos = peticion.NroComplejos;
            entidad.Presupuesto  = peticion.Presupuesto;

            var valorSede = await _sedeRepositorio.EditarSede(entidad);

            if (valorSede <= 0)
            {
                return(new OperacionDto <OperacionSedeRespuestaDto>(new OperacionSedeRespuestaDto()
                {
                    Mensaje = "Error al actualizar Sede",
                    Suceso = false
                }));
            }

            return(new OperacionDto <OperacionSedeRespuestaDto>(new OperacionSedeRespuestaDto()
            {
                Mensaje = "Sede actualizada correctamente",
                Suceso = true
            }));
        }
Пример #8
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
            }));
        }