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); } }
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(); }