public ChatController( UserManager <IdentityUser> userManager, GroupChatContext context) { _userManager = userManager; _context = context; }
public async Task SendSimpleMessageToAll(string groupId, string replyId, dynamic msgObj) { var id = Context.Request.User.Identity; try { string msgbody = msgObj.body; var msg = await GroupChatContext.AddUserMessage((new NotificationHub()).HubIdentity, HubIdentity, id.GetUserId(), groupId, replyId, msgbody); var cids = (from d in msg.peers select d.ConnectionID).ToArray(); Clients.Clients(cids).messageReceived(id.Name, msg.msg); var nhub = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); if (nhub != null) { var ncids = (from d in msg.callbacks where !(from x in msg.peers where x.UserID == d.UserID select x).Any() select d.ConnectionID).ToArray(); if (ncids.Length > 0) { nhub.Clients.Clients(ncids).serverNotifications(msg.brief, msg.categ.TypeName); } } } catch (Exception ex) { Clients.Caller.sendError(ex.Message); } }
public async Task <ActionResult> LogOff() { string langs = Request.Headers["Accept-Language"]; var callbacks = await ConnectionContext.UserConnectionClosed(User.Identity.GetUserId(), langs); // handle group chat ... { var gchub = new SignalRHubs.GroupChatHub(); var nhub = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <SignalRHubs.GroupChatHub>(); if (nhub != null) { foreach (var c in from d in callbacks where d.HubID == gchub.HubIdentity select d) { var peers = await GroupChatContext.ListConnectIds(gchub.HubIdentity, c.ChannelID); if (peers.Length > 0) { var cids = (from d in peers select d.ConnectionID).ToArray(); nhub.Clients.Clients(cids).userDisConnected(GroupChatContext.GetJsonPeer(c)); } } } } AuthenticationManager.SignOut(); return(RedirectToAction("Index", "Home")); }
public ChatController( UserManager <ApplicationUser> userManager, GroupChatContext context ) { _userManager = userManager; _GroupContext = context; }
public override async Task OnDisconnected() { var cb = await ConnectionContext.OnUserDisconnected(HubIdentity, Context.ConnectionId); if (cb != null) { Clients.Client(cb.ChannelID).userDisConnected(GroupChatContext.GetJsonPeer(cb)); } await base.OnDisconnected(); }
public async Task <ActionResult> ChatRoom(string id, bool?seq) { var m = await GroupChatContext.LoadChatRoom(HubId, id, User.Identity.GetUserId(), MaxInitMsgs, !seq.HasValue || !seq.Value); if (m.RoomExists) { return(View(m)); } else { return(new HttpStatusCodeResult(404, "Not Found")); } }
public async Task UserConnected(string groupId) { var langs = Context.Request.Headers["Accept-Language"]; var cb = await GroupChatContext.UserConnected(HubIdentity, groupId, UserId, Context.ConnectionId, langs); var peers = await GroupChatContext.ListConnectIds(HubIdentity, groupId, true); if (peers.Length > 0) { var cids = (from d in peers select d.ConnectionID).ToArray(); Clients.Clients(cids).userConnected(GroupChatContext.GetJsonPeer(cb)); } }
public override async Task OnDisconnected() { var cb = await ConnectionContext.OnUserDisconnected(HubIdentity, Context.ConnectionId); var peers = await GroupChatContext.ListConnectIds(HubIdentity, cb.ChannelID); if (peers.Length > 0) { var cids = (from d in peers select d.ConnectionID).ToArray(); Clients.Clients(cids).userDisConnected(GroupChatContext.GetJsonPeer(cb)); } await base.OnDisconnected(); }
public async Task VoteOnMessage(string groupId, string msgId, string userId, int del) { try { int score = await GroupChatContext.VoteOnMessage(msgId, userId, del); var peers = await GroupChatContext.ListConnectIds(HubIdentity, groupId, false); var cids = (from d in peers select d.ConnectionID).ToArray(); Clients.Clients(cids).onUserVoteMessage(msgId, score); } catch (Exception ex) { Clients.Caller.sendError(ex.Message); } }
public MessageController(GroupChatContext context, UserManager <IdentityUser> userManager) { _context = context; _userManager = userManager; }
public async Task <ActionResult> Start() { var m = await GroupChatContext.ListChatRooms(User.Identity.GetUserId()); return(View(m)); }
public async Task <ActionResult> ListConnectedMembers(string id) { return(Json(await GroupChatContext.ListConnectedMembers(HubId, id), JsonRequestBehavior.AllowGet)); }
public async Task <dynamic> LoadRoomSummary(string id) { dynamic data = await GroupChatContext.LoadRoomSummary(HubId, id); return(Json(data, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> LoadMessages(string id, bool?seq) { var msgs = await GroupChatContext.LoadMessages(id, User.Identity.GetUserId(), MaxInitMsgs, !seq.HasValue || !seq.Value); return(Json(msgs, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Subscribe(string id) { var s = await GroupChatContext.Subscribe(User.Identity.GetUserId(), id); return(Json(s)); }
public async Task <ActionResult> ChangeNotification(string id) { var s = await GroupChatContext.ChangeNotification(User.Identity.GetUserId(), id); return(Json(s)); }
public GroupController(GroupChatContext context, UserManager <ApplicationUser> userManager) { _context = context; _userManager = userManager; }