public bool Registrar(FormularioRegistrarNotificacion formulario) { try { Notificacion notificacion = formulario.Notificacion; IEnumerable <Segmento> segmentos = formulario.Segmentos; notificacion.FechaInicio = DateTime.Now; if (repositorio.Insertar(notificacion)) { RepositorioSegmento repoSegmento = new RepositorioSegmento(); RepositorioCargo repoCargo = new RepositorioCargo(); int id = repositorio.PorUltimoId(); foreach (Segmento segmento in segmentos) { segmento.Notificacion = id; if (repoCargo.PorId(segmento.Cargo) is Cargo cargo) { repoSegmento.Insertar(segmento); } } return(true); } return(false); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(false); } }
public ClaimsPrincipal GenerarIdentidad(Usuario usuario) { var repositorioCargo = new RepositorioCargo(); var cargo = repositorioCargo.PorId(usuario.Cargo); List <Claim> listado = new List <Claim> { new Claim(ClaimTypes.SerialNumber, usuario.Id.ToString()), new Claim(ClaimTypes.Dns, usuario.Documento), new Claim(ClaimTypes.Email, usuario.Correo), }; // permisos if (cargo.Logistica) { listado.Add(new Claim(ClaimTypes.Role, "logistica")); } if (cargo.Pedidos) { listado.Add(new Claim(ClaimTypes.Role, "pedidos")); } if (cargo.Solicitar) { listado.Add(new Claim(ClaimTypes.Role, "solicitar")); } if (cargo.Usuarios) { listado.Add(new Claim(ClaimTypes.Role, "usuarios")); } if (cargo.Clientes) { listado.Add(new Claim(ClaimTypes.Role, "clientes")); } ClaimsIdentity identidad = new ClaimsIdentity(listado, "bearerToken"); return(new ClaimsPrincipal(identidad)); }
public CargoController() { repo = new RepositorioCargo(); }