示例#1
0
        public IEnumerable <Message> RecentMessages()
        {
            lock (runningLock)
            {
                if (!running)
                {
                    throw new Exception("Not connected");
                }

                CampfireRestClient.CampfireMessageOptions messageOptions =
                    (hwm != null) ?
                    new CampfireRestClient.CampfireMessageOptions()
                {
                    SinceMessageId = hwm
                } :
                null;

                IEnumerable <CampfireMessage> campfireMessages = restClient.Messages(room, messageOptions);
                List <Message> messages = new List <Message>();

                foreach (CampfireMessage campfireMessage in campfireMessages)
                {
                    hwm = campfireMessage.Id;

                    if (!campfireMessage.Type.Equals("TextMessage"))
                    {
                        continue;
                    }

                    int userId = campfireMessage.UserId;

                    messages.Add(new Message()
                    {
                        Sender      = ResolveUserId(campfireMessage.UserId),
                        SenderImage = ResolveUserImage(campfireMessage.UserId),
                        Time        = campfireMessage.CreatedAt,
                        Content     = campfireMessage.Body
                    });
                }

                return(messages);
            }
        }
示例#2
0
        public void Start()
        {
            lock (runningLock)
            {
                if (running)
                {
                    Stop();
                }

                restClient = new CampfireRestClient(restConfiguration);
                room       = null;

                foreach (CampfireRoom r in restClient.Rooms())
                {
                    if (roomName.Equals(r.Name))
                    {
                        room = r;
                        break;
                    }
                }

                if (room == null)
                {
                    throw new Exception(String.Format("Could not find room '{0}'", roomName));
                }

                CampfireMessage lastMessage = restClient.Messages(room).Last();

                if (lastMessage != null)
                {
                    hwm = lastMessage.Id;
                }

                running = true;
            }

            new Thread(delegate()
            {
                imageManager.Start();
            }).Start();
        }