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); }
public async Task <IActionResult> Put([FromBody] AddUsuarioDTO usuario) { return(Ok(await _usuarioManager.edit(usuario))); }
public async Task <IActionResult> AddDocente(int id, [FromBody] AddUsuarioDTO user) { return(Ok(await _cursoManager.addDocente(id, user))); }
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); }