예제 #1
0
        public static string RecuperarClave(int cedula)
        {
            var context = new MyDbContext();

            string nueva_clave = Signature.Random();
            Dictionary <string, string> dic = Signature.HashingSHA256(nueva_clave);
            string hash = dic["hash"];
            string salt = dic["salt"];

            var trans = context.Database.BeginTransaction();

            try {
                string query = $"EXEC User_Update_clave @cedula={cedula}, @clave_hash='{hash}', @salt='{salt}'";

                UserSafe user = context.UserSafe.FromSql(query).First();

                //if (user.email != email)
                //throw new Exception("Cedula/email incorrectos at Usuario.RecuperarClave");

                new EmailTC().NuevaClave($"{user.nombre} {user.apellido}", user.email, nueva_clave);

                trans.Commit();

                return($"Su clave temporal ha sido enviada a {user.email}");
            } catch (Exception e) {
                trans.Rollback();
                throw new Exception("Error", e);
            }
        }
예제 #2
0
        public static void CambiarClave(string cedula, string antiguaClave, string nuevaclave, MyDbContext _context)
        {
            _checkClave(cedula, antiguaClave, _context);

            var    dic  = Signature.HashingSHA256(nuevaclave);
            string hash = dic["hash"];
            string salt = dic["salt"];
            string q    = $"EXEC User_Update_clave @cedula={cedula}, @clave_hash='{hash}', @salt='{salt}'";

            UserSafe user = _context.UserSafe.FromSql(q).First();

            new EmailTC().CambiarClave($"{user.nombre} {user.apellido}", user.email, nuevaclave);
        }
예제 #3
0
        public static string NuevaClave(int cedula, MyDbContext _context)
        {
            string nueva_clave = Signature.Random();
            var    dic         = Signature.HashingSHA256(nueva_clave);
            string hash        = dic["hash"];
            string salt        = dic["salt"];

            string q = $"EXEC User_Update_clave @cedula={cedula}, @clave_hash='{hash}', @salt='{salt}'";

            UserSafe user = _context.UserSafe.FromSql(q).First();

            new EmailTC().NuevaClave($"{user.nombre} {user.apellido}", user.email, nueva_clave);

            return(nueva_clave);
        }
예제 #4
0
        //En caso de un mal despacho se notifica al contralor
        public static void AlertaDespacho(int idReceta)
        {
            try {
                var despachos = ItemDespacho.GetByReceta(idReceta, new MyDbContext());
                var contralor = UserSafe.GetByCargo("contralor");

                foreach (var item in despachos)
                {
                    if (item.cantidadDespachada != item.cantidadRecetada)
                    {
                        new EmailTC().RecetaErronea($"{contralor.nombre} {contralor.apellido}", contralor.email, idReceta);
                        break;
                    }
                }
            } catch (Exception e) { }
        }
예제 #5
0
        public static void AlertaPesoTalla(Data request, Token token)
        {
            try {
                Apadrinado apadrinado = Apadrinado.Get(request.apadrinado, new MyDbContext());
                UserSafe   operador   = UserSafe.GetByCargo("operador");

                var peso  = (float)request.peso / (float)apadrinado.peso;
                var talla = (float)request.talla / (float)apadrinado.talla;

                if (peso < 0.8 || peso > 1.2)
                {
                    new EmailTC().AlertaPesoTalla(operador.nombre, operador.email, request.apadrinado, request.peso, request.talla, $"{token.data.nombres} {token.data.apellidos}");
                }
                else if (talla < 0.8 || talla > 1.2)
                {
                    new EmailTC().AlertaPesoTalla(operador.nombre, operador.email, request.apadrinado, request.peso, request.talla, $"{token.data.nombres} {token.data.apellidos}");
                }
            } catch (Exception e) {
            }
        }