예제 #1
0
        //-------------------------------------------------------------------------------------------------- GET Friendlist messages

        public async Task JoinChatRoom(string userID, string groupID)
        {
            await ReconnectUser(userID);


            DbSendMessage db = new DbSendMessage();

            if (program.users.Groups.Exists(g => g.GroupID == groupID))
            {
                var group = program.users.Groups.Find(g => g.GroupID == groupID);



                if (group.Users.Exists(u => u.UserID == userID))
                {
                    group.Users.Find(u => u.UserID == userID).IsConnected = true;
                    var messagesFromDB = await db.GetTop100Messages(groupID, userID);

                    List <ClientMessage> messages = new List <ClientMessage>();

                    messages = messagesFromDB;
                    string mtd = "JoinChat" + groupID;
                    string cid = Context.ConnectionId;
                    await Clients.Client(cid).SendAsync(mtd, messages);
                }
            }
        }
예제 #2
0
        public async Task SendMsgToGroup(string groupID, string message, string user, string userID)
        {
            await ReconnectUser(userID);

            if (program.users.Groups.Exists(g => g.GroupID == groupID))
            {
                var group = program.users.Groups.Find(g => g.GroupID == groupID);
                if (group.Users.Exists(u => u.UserID == userID && u.IsConnected == true))
                {
                    DbSendMessage db = new DbSendMessage();
                    await db.SendMessage(message, userID, groupID);

                    string method = "ReceiveMessage" + groupID;
                    await Clients.Group(groupID).SendAsync(method, user, message);

                    Console.WriteLine(method);
                }
            }
        }