public bool SendRequestStateChanged(List<int> IdsUsuarios, long Id_Solicitud, int Id_Prensa, StateToSend State) { return RequestHub.SendRequestStateChanged(IdsUsuarios, Id_Solicitud, Id_Prensa, State); }
/// <summary> /// Envía una notificación de cambio de estado de una solicitud /// </summary> /// <param name="IdsUsuarios">Listado de usuarios a los que enviar la notificación</param> /// <param name="Id_Solicitud">Id de la solicitud generada</param> /// <param name="Id_Prensa">Id de la prensa</param> /// <param name="State">Estado de la solicitud</param> /// <returns>Envío realizado</returns> public static bool SendRequestStateChanged(List <int> IdsUsuarios, long Id_Solicitud, int Id_Prensa, StateToSend State) { ILogger log = LogFactory.GetLogger(typeof(RequestHub)); bool sw = false; try { var hubContext = GlobalHost.ConnectionManager.GetHubContext <RequestHub>(); #region Usuarios if (IdsUsuarios != null && IdsUsuarios.Count > 0) { log.Debug("SendRequestStateChanged. Enviando cambio de estado a los usuarios..."); // Envío unos usuarios por identificador foreach (int idUsuario in IdsUsuarios) { log.Debug("SendRequestStateChanged. Enviando cambio de estado para el usuario: {0}", idUsuario); List <string> lstConexiones = SignalRManager.GetInstance.Connections.GetConnectionsIdByUser((int)idUsuario); if (lstConexiones != null && lstConexiones.Count > 0) { foreach (string connectionId in lstConexiones) { if (connectionId != null && connectionId.Length > 0) { hubContext.Clients.Client(connectionId).SendRequestStateChanged(Id_Solicitud, Id_Prensa, State); log.Debug("SendRequestStateChanged. Enviada cambio de estado para el usuario: {0} (Id: {1})", connectionId, idUsuario); } else { log.Warning("SendRequestStateChanged. Sin datos de la conexión (Id: {0})", idUsuario); } } } else { // El usuario no está en la lista de usuarios conectados log.Debug("SendRequestStateChanged. No se puede mandar el cambio de estado al usuario ya que no está autenticado (Id: {0})", idUsuario); } } sw = true; } #endregion } catch (Exception er) { log.Error("SendRequestStateChanged()", er); } return(sw); }