예제 #1
0
        public bool verificaRut(int rut, string dv)
        {
            int Digito;
            int Contador;
            int Multiplo;
            int Acumulador;
            string RutDigito;

            Contador = 2;
            Acumulador = 0;

            while (rut != 0)
            {
                Multiplo = (rut % 10) * Contador;
                Acumulador = Acumulador + Multiplo;
                rut = rut / 10;
                Contador = Contador + 1;

                if (Contador == 8)
                {
                    Contador = 2;
                }
            }

            Digito = 11 - (Acumulador % 11);
            RutDigito = Digito.ToString().Trim();
            if (Digito == 10)
            {
                RutDigito = "K";
            }
            if (Digito == 11)
            {
                RutDigito = "0";
            }

            if (RutDigito.ToString() == dv.ToString())
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        //public static bool validarRut(string rut)
        //{

        //    bool validacion = false;
        //    try
        //    {
        //        rut = rut.ToUpper();
        //        rut = rut.Replace(".", "");
        //        rut = rut.Replace("-", "");
        //        int rutAux = int.Parse(rut.Substring(0, rut.Length - 1));

        //        char dv = char.Parse(rut.Substring(rut.Length - 1, 1));

        //        int m = 0, s = 1;
        //        for (; rutAux != 0; rutAux /= 10)
        //        {
        //            s = (s + rutAux % 10 * (9 - m++ % 6)) % 11;
        //        }
        //        if (dv == (char)(s != 0 ? s + 47 : 75))
        //        {
        //            validacion = true;
        //        }
        //    }
        //    catch (Exception)
        //    {
        //    }
        //    return validacion;
        //}

        public static bool validarRut(string rut)
        {
            int Digito;
            int Contador;
            int Multiplo;
            int Acumulador;
            string RutDigito;
            char dv;
            int rutAux = 0;

            rut = rut.ToUpper();
            rut = rut.Replace(".", "");
            rut = rut.Replace("-", "");
            rut = rut.Replace("_", "");
            rut = rut.Replace(",", "");
            int cantidad = rut.Length;
            
                rutAux = int.Parse(rut.Substring(0, rut.Length - 1));
          
           


            dv = char.Parse(rut.Substring(rut.Length - 1, 1));

            Contador = 2;
            Acumulador = 0;

            while (rutAux != 0)
            {
                Multiplo = (rutAux % 10) * Contador;
                Acumulador = Acumulador + Multiplo;
                rutAux = rutAux / 10;
                Contador = Contador + 1;

                if (Contador == 8)
                {
                    Contador = 2;
                }
            }

            Digito = 11 - (Acumulador % 11);
            RutDigito = Digito.ToString().Trim();
            if (Digito == 10)
            {
                RutDigito = "K";
            }
            if (Digito == 11)
            {
                RutDigito = "0";
            }


            if (RutDigito.ToString() == dv.ToString())
            {
                return true;
            }
            else
            {
                return false;
            }

        }
예제 #3
0
        public string Get(string rutw)
        {
            rutw = rutw.Replace("k", "K");
            string        msgValido = "Rut invalido.";
            StringBuilder sb        = new StringBuilder();
            StringWriter  sw        = new StringWriter(sb);

            try
            {
                if (rutw.IndexOf("-") == -1)
                {
                    msgValido = "Por favor ingrese el Guión del dígito verificador(ej: 12345678 - 9).";
                    using (JsonWriter writer = new JsonTextWriter(sw))
                    {
                        writer.Formatting = Formatting.Indented;

                        writer.WriteStartObject();
                        writer.WritePropertyName("msgValido");

                        writer.WriteValue(msgValido);


                        writer.WriteEndObject();
                    }


                    return(sb.ToString());
                }
                //sustrae el rut sin el digito verificador a un entero y elimina los "."
                int rut = Int32.Parse(rutw.Substring(0, (rutw.IndexOf("-"))).Replace(".", ""));

                string dv = rutw.Substring(rutw.IndexOf("-") + 1, 1);

                int    Digito;
                int    Contador;
                int    Multiplo;
                int    Acumulador;
                string RutDigito;

                Contador   = 2;
                Acumulador = 0;

                while (rut != 0)
                {
                    Multiplo   = (rut % 10) * Contador;
                    Acumulador = Acumulador + Multiplo;
                    rut        = rut / 10;
                    Contador   = Contador + 1;

                    if (Contador == 8)
                    {
                        Contador = 2;
                    }
                }



                Digito    = 11 - (Acumulador % 11);
                RutDigito = Digito.ToString().Trim();
                if (Digito == 10)
                {
                    RutDigito = "K";
                }
                if (Digito == 11)
                {
                    RutDigito = "0";
                }


                // Si el código verificador coincide con el rut, será Valido
                //de forma contraria, se mostrará como NO Valido.
                if (RutDigito.ToString() == dv.ToString())
                {
                    msgValido = "El Rut es Valido.";
                }
                else
                {
                    msgValido = "El Rut NO ES Valido.";
                }

                using (JsonWriter writer = new JsonTextWriter(sw))
                {
                    writer.Formatting = Formatting.Indented;

                    writer.WriteStartObject();
                    writer.WritePropertyName("msgValido");

                    writer.WriteValue(msgValido);


                    writer.WriteEndObject();
                }

                return(sb.ToString());
            }
            catch (Exception e)
            {
                msgValido = "El Rut NO ES Valido.";
                using (JsonWriter writer = new JsonTextWriter(sw))
                {
                    writer.Formatting = Formatting.Indented;

                    writer.WriteStartObject();
                    writer.WritePropertyName("msgValido");

                    writer.WriteValue(msgValido);


                    writer.WriteEndObject();
                }

                return(sb.ToString());
            }
        }