Exemple #1
0
        public async Task <ApiResponse <List <GetUsuarioDTO> > > add(AddUsuarioDTO usuario)
        {
            ApiResponse <List <GetUsuarioDTO> > response = new ApiResponse <List <GetUsuarioDTO> >();

            try
            {
                usuario.Contrasena = BCrypt.Net.BCrypt.HashPassword(usuario.Contrasena);
                _context.Usuarios.Add(_mapper.Map <Usuario>(usuario));
                await _context.SaveChangesAsync();

                // añadir roles a usuario
                foreach (GetRolDTO rol in usuario.Roles)
                {
                    UsuarioRol ur = new UsuarioRol();
                    ur.FacultadId = usuario.FacultadId;
                    ur.UsuarioId  = usuario.Cedula;
                    switch (rol.Descripcion)
                    {
                    case "administrador":
                        ur.RolId = 1;
                        break;

                    case "docente":
                        ur.RolId = 2;
                        break;

                    case "estudiante":
                        ur.RolId = 3;
                        break;
                    }
                    _context.UsuarioRol.Add(ur);
                }
                await _context.SaveChangesAsync();

                response.Data = _context.Usuarios.Select(u => _mapper.Map <GetUsuarioDTO>(u)).ToList();

                EmailManager.SendMail(usuario.Nombre + ":\nUsted ha sido registrado como usuario de UdelarOnline.\n\nUdelar Online.", usuario.Correo, _config);
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Status  = 500;
                response.Message = e.Message;
            }
            return(response);
        }
        public async Task <ApiResponse <GetCursoDTO> > addDocente(int id, AddUsuarioDTO user)
        {
            ApiResponse <GetCursoDTO> response = new ApiResponse <GetCursoDTO>();

            try
            {
                CursoDocente cd = new CursoDocente();
                cd.CursoId    = id;
                cd.FacultadId = user.FacultadId;
                cd.UsuarioId  = user.Cedula;
                _context.CursoDocente.Add(cd);
                await _context.SaveChangesAsync();

                response.Data = _mapper.Map <GetCursoDTO>(_context.Cursos.SingleOrDefault(c => c.Id == id));
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Status  = 500;
                response.Message = e.Message;
            }

            return(response);
        }
Exemple #3
0
 public async Task <IActionResult> Put([FromBody] AddUsuarioDTO usuario)
 {
     return(Ok(await _usuarioManager.edit(usuario)));
 }
Exemple #4
0
 public async Task <IActionResult> AddDocente(int id, [FromBody] AddUsuarioDTO user)
 {
     return(Ok(await _cursoManager.addDocente(id, user)));
 }
Exemple #5
0
        public async Task <ApiResponse <GetUsuarioDTO> > edit(AddUsuarioDTO usuario)
        {
            ApiResponse <GetUsuarioDTO> response = new ApiResponse <GetUsuarioDTO>();

            try
            {
                Usuario    usuarioUpdate = _context.Usuarios.First(u => u.Cedula == usuario.Cedula && u.FacultadId == usuario.FacultadId);
                List <int> uroles        = _context.UsuarioRol.Select(ur => ur).Where(ur => ur.UsuarioId == usuario.Cedula && ur.FacultadId == usuario.FacultadId).Select(ur => ur.RolId).ToList();
                usuarioUpdate.Nombre   = usuario.Nombre;
                usuarioUpdate.Apellido = usuario.Apellido;
                if (usuario.Contrasena != null)
                {
                    usuarioUpdate.Contrasena = BCrypt.Net.BCrypt.HashPassword(usuario.Contrasena);
                }
                usuarioUpdate.Correo = usuario.Correo;

                foreach (GetRolDTO rol in usuario.Roles)
                {
                    int rolId;
                    switch (rol.Descripcion)
                    {
                    case "administrador":
                        rolId = 1;
                        break;

                    case "docente":
                        rolId = 2;
                        break;

                    case "estudiante":
                        rolId = 3;
                        break;

                    default:
                        rolId = 0;
                        break;
                    }

                    if (!uroles.Exists(r => r == rolId))
                    {
                        UsuarioRol ur = new UsuarioRol();
                        ur.FacultadId = usuario.FacultadId;
                        ur.UsuarioId  = usuario.Cedula;
                        ur.RolId      = rolId;

                        _context.UsuarioRol.Add(ur);
                    }
                }
                foreach (int rol in uroles)
                {
                    UsuarioRol ur = new UsuarioRol();
                    ur.FacultadId = usuario.FacultadId;
                    ur.UsuarioId  = usuario.Cedula;
                    switch (rol)
                    {
                    case 1:
                        if (!usuario.Roles.Exists(r => r.Descripcion == "administrador"))
                        {
                            ur.RolId = rol;
                            _context.UsuarioRol.Remove(ur);
                        }
                        break;

                    case 2:
                        if (!usuario.Roles.Exists(r => r.Descripcion == "docente"))
                        {
                            ur.RolId = rol;
                            _context.UsuarioRol.Remove(ur);
                        }
                        break;

                    case 3:
                        if (!usuario.Roles.Exists(r => r.Descripcion == "estudiante"))
                        {
                            ur.RolId = rol;
                            _context.UsuarioRol.Remove(ur);
                        }
                        break;
                    }
                }

                await _context.SaveChangesAsync();

                response.Data = _mapper.Map <GetUsuarioDTO>(usuarioUpdate);
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Status  = 404;
                response.Message = e.Message;
            }
            return(response);
        }