public Nota[] ObtenerCuadernoComunicaciones(int idPersona, UsuarioLogueado usuarioLogueado)
        {
            //Primero se comprueba que permiso tiene para saber si puede tener acceso al cuadreno deseado. El hijo no tiene autorizacion

            if (usuarioLogueado.RolSeleccionado == Roles.Directora) //Puede ver todos
            {
                Nota cuaderno = ListaNotas.Where(x => x.Id == idPersona).FirstOrDefault();
            }

            if (usuarioLogueado.RolSeleccionado == Roles.Docente) //Puede ver los de su sala
            {
                Docente docente = ListaDocentes.Where(x => x.Email == usuarioLogueado.Email).FirstOrDefault();
                foreach (var sala in docente.Salas)
                {
                    if (sala.Id == idPersona)
                    {
                        Nota cuaderno = ListaNotas.Where(x => x.Id == idPersona).FirstOrDefault();
                    }
                }
            }

            if (usuarioLogueado.RolSeleccionado == Roles.Padre) //Puede ver los del hijo
            {
                Padre padre = ListaPadres.Where(x => x.Email == usuarioLogueado.Email).FirstOrDefault();
                foreach (var hijo in padre.Hijos)
                {
                    if (hijo.Id == idPersona)
                    {
                        Nota cuaderno = ListaNotas.Where(x => x.Id == idPersona).FirstOrDefault();
                    }
                }
            }

            return(new Nota[0]);
        }
示例#2
0
        public Resultado DesasignarHijoPadre(Hijo hijo, Padre padre, UsuarioLogueado usuariologueado)
        {
            CrearArchivos();
            LeerPadres();

            var resultado = new Resultado();

            if (VerificarUsuarioLogeado(Roles.Directora, usuariologueado).EsValido)
            {
                var listahijos = padre.Hijos != null?padre.Hijos.ToList() : new List <Hijo>();

                if (listahijos.Any(x => x.Id == hijo.Id) == false) //Verifica que el hijo a agregar no este repetido
                {
                    listahijos.Add(hijo);
                }
                else
                {
                    resultado.Errores.Add("El hijo ya esta asignado");
                }

                padre.Hijos = listahijos.ToArray();

                EditarPadre(padre.Id, padre, usuariologueado); //Modifica el padre asignandole los hijos

                GuardarPadre(ListaPadres);
            }
            return(resultado);
        }
        public Resultado DesasignarHijoPadre(Hijo hijo, Padre padre, UsuarioLogueado usuarioLogueado)
        {
            Resultado NuevoResultado = new Resultado();

            if (usuarioLogueado.RolSeleccionado == Roles.Directora)
            {
                var hijosPadre = padre.Hijos != null?padre.Hijos.ToList() : new List <Hijo>();

                if (hijosPadre.Any(x => x.Id == hijo.Id) == true)
                {
                    hijosPadre.Remove(hijo);
                }
                else
                {
                    NuevoResultado.Errores.Add("No se encontro el hijo");
                }

                padre.Hijos = hijosPadre.ToArray();

                LeerPadres();
                ListaPadres.Find(x => x.Id == padre.Id).Hijos = padre.Hijos; //obtiene el padre y le asigna los hijos que tenga
                GuardarPadres(ListaPadres);
            }
            else
            {
                NuevoResultado.Errores.Add("No tiene permiso para desasignar");
            }
            return(NuevoResultado);
        }
示例#4
0
        public Resultado BajaPadre(int id, Padre padre)
        {
            Resultado Controlador = new Resultado();

            int indice = 0;
            List <UsuarioJson> listaPadres  = GetUsersJson();
            UsuarioJson        usuarioPadre = listaPadres.Where(x => x.Id == id && x.Roles.Contains(Roles.Padre)).FirstOrDefault();

            indice = listaPadres.IndexOf(usuarioPadre);

            if (usuarioPadre == null)
            {
                Controlador.Errores.Add("No existe este padre.");
                return(Controlador);
            }
            else
            {
                usuarioPadre.Nombre   = padre.Nombre;
                usuarioPadre.Apellido = padre.Apellido;
                usuarioPadre.Email    = padre.Email;
            }

            listaPadres.RemoveAt(listaPadres.IndexOf(usuarioPadre));

            string outputPadres = JsonConvert.SerializeObject(listaPadres);

            using (StreamWriter strWriter = new System.IO.StreamWriter(path + "Usuarios.txt", false))
            {
                strWriter.Write(outputPadres);
            }

            return(Controlador);
        }
示例#5
0
        public Resultado AltaPadre(Padre padre, UsuarioLogueado usuariologueado)
        {
            CrearArchivos();
            LeerPadres();
            LeerClaves();

            Resultado verificacion = VerificarUsuarioLogeado(Roles.Directora, usuariologueado);

            if (verificacion.EsValido)
            {
                padre.Id = ListaPadres.Count() + 1;
                Random rnd   = new Random();
                var    pswrd = rnd.Next(100000, 999999).ToString();
                ListaPadres.Add(padre);
                Clave pass = new Clave()
                {
                    Email = padre.Email, Password = pswrd, Rol = Roles.Padre
                };
                ListaClaves.Add(pass);
                GuardarPadre(ListaPadres);
                GuardarClaves(ListaClaves);
            }

            return(verificacion);
        }
示例#6
0
        public Resultado AsignarDesasignarHijo(int idHijo, Padre padre, bool Asignar)
        {
            Resultado        Controlador = new Resultado();
            List <PadreJson> padresJson  = GetPadresJson();

            if (Asignar)
            {
                if (padresJson.Where(x => x.IdUser == padre.Id).FirstOrDefault().idHijos.Contains(idHijo))
                {
                    Controlador.Errores.Add("Ya tiene este hijo asignado");
                    return(Controlador);
                }
                padresJson.Where(x => x.IdUser == padre.Id).FirstOrDefault().idHijos = padresJson.Where(x => x.IdUser == padre.Id).FirstOrDefault().idHijos.AddInt(idHijo);
            }
            else
            {
                if (!padresJson.Where(x => x.IdUser == padre.Id).FirstOrDefault().idHijos.Contains(idHijo))
                {
                    Controlador.Errores.Add("No tiene este hijo asignado");
                    return(Controlador);
                }
                padresJson.Where(x => x.IdUser == padre.Id).FirstOrDefault().idHijos = padresJson.Where(x => x.IdUser == padre.Id).FirstOrDefault().idHijos.RemoveInt(idHijo);
            }

            string outpuDocentes = JsonConvert.SerializeObject(padresJson);

            using (StreamWriter strWriter = new System.IO.StreamWriter(path + "Padres.txt", false))
            {
                strWriter.Write(outpuDocentes);
            }

            return(Controlador);
        }
 public void AgregarPadre(Padre padre, AlumnoHijo hijo)
 {
     if (ListaDePadres.Exists(x => x.NumeroDeDocumento == padre.NumeroDeDocumento) == false)
     {
         padre.AgregarHijo(hijo);
         ListaDePadres.Add(padre);
     }
     else
     {
         ListaDePadres.Find(x => x.NumeroDeDocumento == padre.NumeroDeDocumento).AgregarHijo(hijo);
     }
 }
        public Resultado DesasignarHijoPadre(Hijo hijo, Padre padre)
        {
            List <Padre> padres     = Archivos.Instancia.ObtenerPadres();
            Padre        PadreHijos = Archivos.Instancia.ObtenerPadres().Find(x => x.Id == padre.Id);
            List <Hijo>  hijos      = PadreHijos.Hijos.ToList();

            hijos.RemoveAll(x => x.Id == hijo.Id);
            PadreHijos.Hijos = hijos.ToArray();

            Archivos.Instancia.ModificarArchivoPadres(padres);

            return(new Resultado());
        }
示例#9
0
        public Resultado EliminarPadre(int id, Padre padreeliminado, UsuarioLogueado usuariologueado)
        {
            CrearArchivos();
            LeerPadres();

            Resultado verificacion = VerificarUsuarioLogeado(Roles.Directora, usuariologueado);

            if (verificacion.EsValido)
            {
                var padre = ObtenerPadrePorId(usuariologueado, id);
                ListaPadres.Remove(padre);
                GuardarPadre(ListaPadres);
            }
            return(verificacion);
        }
示例#10
0
        public Resultado AsignarHijoPadre(Hijo hijo, Padre padre)
        {
            List <Padre> padres     = Archivos.Instancia.ObtenerPadres().ToList();
            Padre        PadreHijos = padres.Find(x => x.Id == padre.Id);
            List <Hijo>  Hijos      = PadreHijos.Hijos is null ? new List <Hijo>() : PadreHijos.Hijos.ToList();

            if (!Hijos.Any(x => x.Id == hijo.Id))
            {
                Hijos.Add(hijo);
            }
            PadreHijos.Hijos = Hijos.ToArray();
            Archivos.Instancia.ModificarArchivoPadres(padres);

            return(new Resultado());
        }
        //---------------------------ABM Padres---------------------------------------------

        public Resultado AltaPadreMadre(Padre padre, UsuarioLogueado usuarioLogueado)
        {
            Resultado NuevoResultado = new Resultado();
            Usuario   nuevousuario   = null;

            padre.Id = LeerUsuarios().Count + 1;

            //Pregunto si tiene el Roll de Directora
            if (usuarioLogueado.RolSeleccionado == Roles.Directora)
            {
                if (LeerUsuarios() != null) //Busco si existe el Padre
                {
                    nuevousuario = LeerUsuarios().Where(x => x.Email == padre.Email).FirstOrDefault();
                }

                if (nuevousuario == null)//No existe, cargo uno nuevo
                {
                    Clave NuevaClave = new Clave();
                    NuevaClave.Id    = padre.Id;
                    NuevaClave.Email = padre.Email;
                    NuevaClave.Roles = new Roles[] { Roles.Padre };

                    LeerClaves();
                    ListaClaves.Add(NuevaClave); //Cargo la nueva clave generada
                    GuardarClaves(ListaClaves);

                    LeerUsuarios();
                    ListaUsuarios.Add(padre); //Cargo un nuevo usuario
                    GuardarUsuarios(ListaUsuarios);

                    LeerPadres();
                    ListaPadres.Add(padre); //Cargo un nuevo padre
                    GuardarPadres(ListaPadres);
                }
                else
                {
                    NuevoResultado.Errores.Add("El usuario ya existe");
                }
            }
            else
            {
                NuevoResultado.Errores.Add("No tiene permiso");
            }

            return(NuevoResultado);
        }
示例#12
0
        public Padre ObtenerPadrePorId(UsuarioLogueado usuarioLogueado, int id)
        {
            CrearArchivos();
            LeerPadres();
            var padre = new Padre();

            if (VerificarUsuarioLogeado(Roles.Directora, usuarioLogueado).EsValido)
            {
                padre = ListaPadres.Where(x => x.Id == id).FirstOrDefault();
            }
            else
            {
                padre = null;
            }
            GuardarPadre(ListaPadres);
            return(padre);
        }
        public Resultado EditarPadreMadre(int id, Padre padre, UsuarioLogueado usuarioLogueado)
        {
            Resultado NuevoResultado = new Resultado();

            if (usuarioLogueado.RolSeleccionado == Roles.Docente)
            {
                Padre NuevoPadre = ObtenerPadrePorId(usuarioLogueado, id);
                NuevoPadre = padre;

                Clave NuevaClave = LeerClaves().Where(x => x.Id == id).FirstOrDefault();
                NuevaClave.Email = padre.Email;

                Usuario nuevoUsuario = new Usuario()
                {
                    Id       = id,
                    Nombre   = padre.Nombre,
                    Apellido = padre.Apellido,
                    Email    = padre.Email
                };

                // Busca el padre y lo borra de los archivos
                LeerPadres().RemoveAll(x => x.Id == padre.Id);
                LeerUsuarios().RemoveAll(x => x.Id == padre.Id);
                LeerClaves().RemoveAll(x => x.Id == padre.Id);

                // Busca el padre y lo guarda en los archivos
                LeerPadres();
                LeerUsuarios();
                LeerClaves();

                ListaPadres.Add(NuevoPadre);
                ListaUsuarios.Add(nuevoUsuario);
                ListaClaves.Add(NuevaClave);

                GuardarPadres(ListaPadres);
                GuardarUsuarios(ListaUsuarios);
                GuardarClaves(ListaClaves);
            }
            else
            {
                NuevoResultado.Errores.Add("No tiene permisos para editar");
            }

            return(NuevoResultado);
        }
示例#14
0
        public Resultado EditarPadre(int id, Padre padre)
        {
            var res = new Resultado();

            if (ComprobarString(padre.Apellido, false) && ComprobarString(padre.Nombre, false) && ComprobarString(padre.Email, true))
            {
                List <Padre> Padres = Archivos.Instancia.ObtenerPadres().ToList();
                EditarUsuario((Usuario)padre, Padres.Find(x => x.Id == id).Email, Roles.Padre);
                Padres.RemoveAll(x => x.Id == id);
                Padres.Add(padre);
                Archivos.Instancia.ModificarArchivoPadres(Padres);
            }
            else
            {
                res.Errores.Add("Nombre, Apellido o Email incorrecto");
            }
            return(res);
        }
        public Resultado EliminarPadreMadre(int id, Padre padre, UsuarioLogueado usuarioLogueado)
        {
            Resultado NuevoResultado = new Resultado();

            if (usuarioLogueado.RolSeleccionado == Roles.Directora)
            {
                // Busca el padre y lo borra de los archivos
                LeerPadres().RemoveAll(x => x.Id == padre.Id);
                LeerUsuarios().RemoveAll(x => x.Id == padre.Id);

                GuardarUsuarios(ListaUsuarios);
                GuardarPadres(ListaPadres);
            }
            else
            {
                NuevoResultado.Errores.Add("No tiene permiso para eliminar");
            }

            return(NuevoResultado);
        }
示例#16
0
        public Resultado AltaPadre(Padre padre)
        {
            var res = new Resultado();

            if (ComprobarString(padre.Apellido, false) && ComprobarString(padre.Nombre, false) && ComprobarString(padre.Email, true))
            {
                List <Padre> Padres = Archivos.Instancia.ObtenerPadres().ToList();
                padre.Id    = (Padres.Count == 0 ? 0 : Padres.Max(x => x.Id)) + 1;
                padre.Hijos = new Hijo[] { };
                Padres.Add(padre);
                Archivos.Instancia.ModificarArchivoPadres(Padres);
                UsuarioLogin usuario = ConvercionDeUsuario((Usuario)padre, Roles.Padre);
                AltaUsuario(usuario);
            }
            else
            {
                res.Errores.Add("Nombre, Apellido o Email incorrecto"); //Estaria bueno indicar especificamente cual da error y que error tiene asi el usuario sabe y lo corrige mas facil.
            }
            return(res);
        }
示例#17
0
        public Hijo[] ObtenerPersonas(UsuarioLogueado usuarioLogueado)
        {
            List <Hijo> ListaHijos = Archivos.Instancia.ObtenerHijos();

            switch (usuarioLogueado.RolSeleccionado)
            {
            case Roles.Padre:
                Padre padre = Archivos.Instancia.ObtenerPadres().Find(x => x.Nombre == usuarioLogueado.Nombre && x.Apellido == usuarioLogueado.Apellido);
                return(padre.Hijos.Count() == 0 ? new Hijo[] { } :ListaHijos.Where(x => padre.Hijos.Where(y => y.Id == x.Id).Count() != 0).ToArray() ?? new Hijo[] { });    //Where().ToArray() nunca retorna null sino un array vacio asi que la pregunta es innecesaria

            case Roles.Directora:
                return(ListaHijos.ToArray());

            case Roles.Docente:
                Docente docente = Archivos.Instancia.ObtenerDocentes().Find(x => x.Nombre == usuarioLogueado.Nombre && x.Apellido == usuarioLogueado.Apellido);
                return(ListaHijos.Where(x => docente.Salas.Where(y => y.Id == x.Sala.Id).Count() != 0).ToArray() ?? new Hijo[] { });

            default:
                throw new Exception("Rol no implementado");
            }
        }
        public Hijo[] ObtenerPersonas(UsuarioLogueado usuarioLogueado)
        {
            //Primero se comprueba que permiso tiene para saber a que hijo/alumno se puede acceder. El hijo no tiene autorizacion
            Hijo[] hijo = null;
            if (usuarioLogueado.RolSeleccionado == Roles.Directora) //Puede ver todos
            {
                hijo = ListaHijos.ToArray();
            }

            if (usuarioLogueado.RolSeleccionado == Roles.Docente) //Puede ver los de su sala
            {
                Docente     docente = ListaDocentes.Where(x => x.Email == usuarioLogueado.Email).FirstOrDefault();
                List <Hijo> listado = new List <Hijo>();
                foreach (var sala in docente.Salas)
                {
                    foreach (var alumno in ListaHijos)
                    {
                        if (sala == alumno.Sala)
                        {
                            listado.Add(alumno);
                        }
                    }
                }
                hijo = listado.ToArray();
            }

            if (usuarioLogueado.RolSeleccionado == Roles.Padre) //Puede ver los del hijo
            {
                Padre padre = ListaPadres.Where(x => x.Email == usuarioLogueado.Email).FirstOrDefault();
                if (padre.Hijos != null)
                {
                    hijo = padre.Hijos;
                }
            }

            return(hijo);
        }
示例#19
0
        public Resultado AltaPadre(Padre padre)
        {
            Resultado Controlador = new Resultado();
            int       Id;

            List <UsuarioJson> users = GetUsersJson();
            UsuarioJson        user  = users.Where(x => x.Email == padre.Email).FirstOrDefault();

            if (user != null)
            {
                if (user.Roles.Contains(Roles.Padre))
                {
                    Controlador.Errores.Add("Padre cargado anteriormente.");
                    return(Controlador);
                }
                else
                {
                    List <Roles> list = (user.Roles.ToList());
                    list.Add(Roles.Padre);
                    user.Roles = list.ToArray();

                    Id = user.Id;
                    string outputUsers = JsonConvert.SerializeObject(users);
                    using (StreamWriter strWriter = new System.IO.StreamWriter(path + "Usuarios.txt", false))
                    {
                        strWriter.Write(outputUsers);
                    }
                }
                padre.Id = user.Id;
            }
            else
            {
                Id = GuardarUserJson(new UsuarioJson()
                {
                    Apellido = padre.Apellido,
                    Nombre   = padre.Nombre,
                    Email    = padre.Email,
                    Password = new Random().Next(0, 999999).ToString("D6"),
                    Roles    = new Roles[] { Roles.Padre }
                });

                padre.Id = Id;
            }

            List <PadreJson> listaPadres = GetPadresJson();

            listaPadres.Add(new PadreJson()
            {
                IdUser  = padre.Id,
                idHijos = padre.Hijos != null ? padre.Hijos.Select(x => x.Id).ToArray() : new int[] { },
            });

            string outputPadres = JsonConvert.SerializeObject(listaPadres);

            using (StreamWriter strWriter = new System.IO.StreamWriter(path + "Padres.txt", false))
            {
                strWriter.Write(outputPadres);
            }

            return(Controlador);
        }
        }//Todo : Terminar El modificar De Docente

        //AGM Alumno
        public void Agregar(string identificadorDeLaInstitucion, string numeroDeLaSala, AlumnoHijo almuno, Padre padre)
        {
            BuscarInstitucionEnLista(identificadorDeLaInstitucion).AgregarPadre(padre, almuno);                       //Agrega El padre con su hijo a la lista
            BuscarInstitucionEnLista(identificadorDeLaInstitucion).BuscarSala(numeroDeLaSala).AgrregarAlumno(almuno); // Agrega el alumno a la sala
        }