Example #1
0
        public async Task <Message> MessageFromId(SparkBot bot, string id)
        {
            var msg = await bot.Connection.GetMessageAsync(id);

            if (msg == null)
            {
                return(null);
            }

            var type = msg.RoomType == "direct" ? MessageType.Private : MessageType.Group;
            var user = await GetUser(bot, msg.PersonId);

            var room = (type == MessageType.Group ? (OutGroup)await GetRoom(bot, msg.RoomId) : null);

            var mesg = new Message(msg, user, room, bot);


            if (msg.MentionedPeople != null && msg.MentionedPeople.Length > 0)
            {
                var users = new IUser[msg.MentionedPeople.Length];

                for (var i = 0; i < msg.MentionedPeople.Length; i++)
                {
                    users[i] = await GetUser(bot, msg.MentionedPeople[i]);
                }

                mesg.Mentions = users;
            }

            return(mesg);
        }
Example #2
0
        public async Task <Room> GetRoom(SparkBot bot, string id)
        {
            if (Rooms.ContainsKey(id))
            {
                return(Rooms[id]);
            }

            var room = await bot.Connection.GetRoomAsync(id);

            if (room == null)
            {
                return(null);
            }

            Rooms.Add(room.Id, room);
            return(room);
        }
Example #3
0
        public async Task <IUser> GetUser(SparkBot bot, string id)
        {
            if (Users.ContainsKey(id))
            {
                return(Users[id]);
            }

            var prsn = (OutUser)await bot.Connection.GetPersonAsync(id);

            if (prsn == null)
            {
                return(null);
            }

            Users.Add(prsn.Id, prsn);
            return(prsn);
        }
 public void PostTest([FromBody] Test message)
 {
     SparkBot.PostMessage("New message from " + message.Name + ": " + message.Message);
 }