示例#1
0
        /// <summary>
        /// Crea un objeto usuario y lo guarda en la DB
        /// </summary>
        /// <param name="nombre">Nombre del usuario</param>
        /// <param name="dni">DNI del usuario</param>
        /// <param name="email">email del usuario</param>

        public void Nuevo(string nombre, int dni, string email)
        {
            if (string.IsNullOrEmpty(nombre) || string.IsNullOrEmpty(email))
            {
                throw new Exception("Debe completar todos los campos");
            }

            if (_usuarios.BuscarPorDni(dni) != null)
            {
                throw new Exception("Ya existe un usuario con ese dni");
            }

            if (_usuarios.BuscarPorEmail(email) != null)
            {
                throw new Exception("Ya existe usuario con ese email");
            }

            Usuario oUsuario = new Usuario(nombre, Convert.ToInt32(dni), email);

            _usuarios.Agregar(oUsuario);
        }
        /// <summary>
        /// Agrega un rol estudiante en la DB. Si el usuario no existe, tambien lo crea.
        /// </summary>
        /// <param name="dni">DNI del estudiante</param>
        /// <param name="nombre">Nombre del estudiante</param>
        /// <param name="email">Email del estudiante</param>
        /// <param name="director_id">ID del director asociado que crea al estudiante.</param>

        public void Nuevo(int dni, string nombre, string email, int director_id)
        {
            if (String.IsNullOrEmpty(nombre) || String.IsNullOrEmpty(email))
            {
                throw new Exception("Debe completar todos los campos");
            }

            TipoRol oTipo    = _tipos.BuscarPorNombre("Estudiante");
            Usuario director = _usuarios.BuscarPorId(director_id),
                    oUser    = _usuarios.BuscarPorDni(dni);

            director.ListaRoles = roles.TraerActivos(director_id);

            Establecimiento oEstablecimiento = director.ListaRoles.First(p => p.Tipo.Nombre == "Director").Establecimiento;
            NivelEducativo  oNivel           = director.ListaRoles.First(p => p.Tipo.Nombre == "Director").Nivel;

            if (oUser == null)
            {
                if (_usuarios.BuscarPorEmail(email) != null)
                {
                    throw new Exception("Ya existe un estudiante con ese email");
                }

                oUser    = new Usuario(nombre, dni, email);
                oUser.Id = _usuarios.Nuevo(oUser);
            }

            if (roles.EsEstudiante(oUser.Id, _establecimientos_niveles.BuscarPorParametros(oEstablecimiento.Id, oNivel.Id)))
            {
                throw new Exception("Este usuario ya tiene el rol estudiante en su institucion.");
            }

            Rol oRol = new Rol(oTipo, oUser, oEstablecimiento, oNivel);

            roles.Nuevo(oRol);
        }