public ChatController(
     UserManager <IdentityUser> userManager,
     GroupChatContext context)
 {
     _userManager = userManager;
     _context     = context;
 }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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;
 }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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"));
            }
        }
Exemplo n.º 7
0
        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));
            }
        }
Exemplo n.º 8
0
        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();
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
 public MessageController(GroupChatContext context, UserManager <IdentityUser> userManager)
 {
     _context     = context;
     _userManager = userManager;
 }
Exemplo n.º 11
0
        public async Task <ActionResult> Start()
        {
            var m = await GroupChatContext.ListChatRooms(User.Identity.GetUserId());

            return(View(m));
        }
Exemplo n.º 12
0
 public async Task <ActionResult> ListConnectedMembers(string id)
 {
     return(Json(await GroupChatContext.ListConnectedMembers(HubId, id), JsonRequestBehavior.AllowGet));
 }
Exemplo n.º 13
0
        public async Task <dynamic> LoadRoomSummary(string id)
        {
            dynamic data = await GroupChatContext.LoadRoomSummary(HubId, id);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        public async Task <ActionResult> Subscribe(string id)
        {
            var s = await GroupChatContext.Subscribe(User.Identity.GetUserId(), id);

            return(Json(s));
        }
Exemplo n.º 16
0
        public async Task <ActionResult> ChangeNotification(string id)
        {
            var s = await GroupChatContext.ChangeNotification(User.Identity.GetUserId(), id);

            return(Json(s));
        }
Exemplo n.º 17
0
 public GroupController(GroupChatContext context, UserManager <ApplicationUser> userManager)
 {
     _context     = context;
     _userManager = userManager;
 }