Exemple #1
0
        //No guarda los cambios en el archivo, solo los aplica en el arreglo
        //Devuelve true si lo consiguio, o false si no
        private bool AplicarCambios()
        {
            activarEventosTextChanged = false;
            Random r           = new Random(); //Se va a usar este numero aleatorio para añadirle al nombre
            string nombre      = tNomCompleto.Text;
            string usuario     = tNomUsuario.Text;
            string contrasenia = tContrasenia.Text;
            byte   tipo        = 3;                                 //va a almacenar el tipo de docente en un dato numerico
                                                                    //0: Administrador
                                                                    //1: Coordinador - docente
                                                                    //2: Coordinador
                                                                    //3: Docente
            string nuevaLinea;                                      //Es la linea que contiene la informacion del usuario y la que se añadira al archivo

            string[] docentesAux = new string[docentes.Length + 1]; //Se va a usar esta variable en caso que se un usuario cambie su tipo a docente
            bool     continuar   = true;
            bool     guardar     = true;

            string[] aux;
            if (pos != null)
            {
                //Añade un numero aleatorio al nombre para asegurarse que sea unico
                nombre += ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10;
                //Determina el dato numerico correspondiente al tipo
                if (rbDocente.Checked)
                {
                    tipo = 3;
                }
                else if (rbCoordinador.Checked)
                {
                    tipo = 2;
                }
                else if (rbDocCor.Checked)
                {
                    tipo = 1;
                }
                else if (rbAdmin.Checked)
                {
                    tipo = 0;
                }

                do
                {
                    foreach (string linea in usuarios)
                    {
                        if (linea != "" && linea != usuarios[pos.Value])
                        {
                            continuar = true;
                            aux       = linea.Split('░');
                            if (aux[0].Equals(usuario))
                            {
                                labelInfo.Text = "Nombre de usuario no disponible, por favor intente con otro.";
                                continuar      = true;
                                guardar        = false;
                                break;
                            }
                            else
                            {
                                labelInfo.Text = "";
                            }
                            if (aux[2].Equals(nombre))
                            {
                                nombre    = nombre.Substring(0, nombre.Length - 3) + ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10;
                                continuar = false;
                                break;
                            }
                        }
                    }
                } while (!continuar);
                nuevaLinea  = usuario + "░";
                nuevaLinea += StringCipher.Encrypt(contrasenia + tipo, nombre) + "░";
                nuevaLinea += nombre;


                //Añadimos los cambios tambien al arreglo docentes con informacion correspondientes a datos\\docentes.txt
                //En caso de que haya una nuevo docente
                if (tipo == 3 || tipo == 1)
                {
                    aux       = usuarios[pos.Value].Split('░');
                    continuar = true; //vamos a reutilizar la variable continuar, ahora significara que si es verdadero, el
                                      //usuario especificado no existe en el arreglo docente y procedera a añadirlo
                                      //si es falso, significa que no existe y procedera a añadirlo
                    for (int i = 0; i < docentes.Length; i++)
                    {
                        docentesAux[i] = docentes[i];
                        if (aux[2] == docentes[i])
                        {
                            continuar   = false;
                            docentes[i] = nombre;
                            //Añadimos un pendiente de cambiar nombre de carpeta
                            foreach (string[] cambios in cambiosNombreCarpetas)
                            {
                                if (cambios[1] == aux[2])
                                {
                                    cambios[1] = nombre;
                                }
                            }
                            break;
                        }
                    }
                    if (continuar)
                    {
                        docentesAux[docentes.Length] = nombre;
                        docentes = docentesAux;
                    }
                }
                //En caso de que un docente deje de serlo
                if (tipo == 2 || tipo == 0)
                {
                    aux = usuarios[pos.Value].Split('░');
                    for (int i = 0; i < docentes.Length; i++)
                    {
                        if (aux[2] == docentes[i])
                        {
                            docentes[i] = "";
                            break;
                        }
                    }
                }

                usuarios[pos.Value] = nuevaLinea;
            }

            return(guardar);
        }
Exemple #2
0
        //Se encarga de llenar los campos de texto una vez se ha seleccionado
        //un elemento de listbox
        private void lbUsuario_SelectedIndexChanged(object sender, EventArgs e)
        {
            activarEventosTextChanged = false;
            string[] aux;
            string   usuario;
            char     tipo;

            try
            {
                usuario = lbUsuario.SelectedItem.ToString();
                usuario = usuario.Substring(0, usuario.IndexOf(':'));
                for (int i = 0; i < usuarios.Length; i++)
                {
                    if (usuarios[i] != "" && usuarios[i].Substring(0, usuario.Length).Equals(usuario))
                    {
                        aux = usuarios[i].Split('░');
                        tNomUsuario.Text  = aux[0];
                        tContrasenia.Text = StringCipher.Decrypt(aux[1], aux[2]);
                        tipo = tContrasenia.Text[tContrasenia.Text.Length - 1];
                        tContrasenia.Text = tContrasenia.Text.Substring(0, tContrasenia.Text.Length - 1);
                        tNomCompleto.Text = aux[2].Substring(0, aux[2].Length - 3);
                        pos        = i;
                        posInfo[0] = tNomUsuario.Text;
                        posInfo[1] = tContrasenia.Text;
                        posInfo[2] = tipo.ToString();
                        posInfo[3] = tNomCompleto.Text;
                        switch (tipo)
                        {
                        case '0':
                            rbAdmin.Checked = true;
                            break;

                        case '1':
                            rbDocCor.Checked = true;
                            break;

                        case '2':
                            rbCoordinador.Checked = true;
                            break;

                        case '3':
                            rbDocente.Checked = true;
                            break;

                        default:
                            break;
                        }
                        bEliUsuario.Enabled  = true;
                        tNomCompleto.Enabled = true;
                        tContrasenia.Enabled = true;
                        tNomUsuario.Enabled  = true;
                        groupBox1.Enabled    = true;
                        if (aux[0] == "Admin" && aux[2].Substring(0, aux[2].Length - 3) == "Admin" && tipo == '0')
                        {
                            bEliUsuario.Enabled  = false;
                            tNomCompleto.Enabled = false;
                            tNomUsuario.Enabled  = false;
                            groupBox1.Enabled    = false;
                        }
                        break;
                    }
                }
                activarEventosTextChanged = true;
            }
            catch { }
        }
Exemple #3
0
        private void bIngUsuario_Click(object sender, EventArgs e)
        {
            Random r           = new Random(); //Se va a usar este numero aleatorio para añadirle al nombre
            string nombre      = tNomCompleto.Text;
            string usuario     = tNomUsuario.Text;
            string contrasenia = tContrasenia.Text;
            byte   tipo        = 3; //va a almacenar el tipo de docente en un dato numerico
                                    //0: Administrador
                                    //1: Coordinador - docente
                                    //2: Coordinador
                                    //3: Docente
            string nuevaLinea;      //Es la linea que contiene la informacion del usuario y la que se añadira al archivo

            string[] archivo;       //Arreglo correspondiente a las lineas del archivo que se va a leer para buscar que no haya conflicto en los nombres de usuario
            bool     continuar = true;
            bool     guardar   = true;

            string[] aux;

            //Añade un numero aleatorio al nombre para asegurarse que sea unico
            nombre += ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10;
            //Determina el dato numerico correspondiente al tipo
            if (rbDocente.Checked)
            {
                tipo = 3;
            }
            else if (rbCoordinador.Checked)
            {
                tipo = 2;
            }
            else if (rbDocCor.Checked)
            {
                tipo = 1;
            }
            else if (rbAdmin.Checked)
            {
                tipo = 0;
            }

            ManejoDeArchivos.CrearArchivo("datos//usuarios.txt");
            archivo = File.ReadAllLines("datos//usuarios.txt");
            do
            {
                foreach (string linea in archivo)
                {
                    continuar = true;
                    aux       = linea.Split('░');
                    if (aux[0].Equals(usuario))
                    {
                        MessageBox.Show("Nombre de usuario no disponible, por favor intente con otro.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        continuar = true;
                        guardar   = false;
                        break;
                    }
                    if (aux[2].Equals(nombre))
                    {
                        nombre    = nombre.Substring(0, nombre.Length - 3) + ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10;
                        continuar = false;
                        break;
                    }
                }
            } while (!continuar);

            if (guardar)
            {
                //Se procede a modificar el archivo con la informacion de los usuarios
                nuevaLinea  = usuario + "░";
                nuevaLinea += StringCipher.Encrypt(contrasenia + tipo, nombre) + "░";
                nuevaLinea += nombre;
                ManejoDeArchivos.AniadirLineaArchivo("datos//usuarios.txt", nuevaLinea);
                //Se procede a modificar el archivo con la informacion de los nombres de los docentes
                if (tipo == 3 || tipo == 1)
                {
                    ManejoDeArchivos.AniadirLineaArchivo("datos//docentes.txt", nombre);
                }
            }
        }