예제 #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);
        }
예제 #2
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);
                }
            }
        }