public void fetchMessages(System.Action <List <YammerMessage> > callback) { yammerClient = new YammerClient(); yammerClient.getMessages(11186532, (messages) => { List <YammerMessage> yammerMessages = new List <YammerMessage>(); foreach (JSONNode message in messages) { int id = message["id"]; int senderId = message["sender_id"]; string body = message["body"]["parsed"]; YammerMessage yammerMessage = new YammerMessage(id, senderId, body); yammerMessages.Add(yammerMessage); } callback(yammerMessages); }); }
public void Publish(EarnedBadgeItemDTO earnedBadge) { //Get the user that earned the badge string userEmail = string.Format("{0}@magenic.com", earnedBadge.EmployeeADName); string userUrl = GetUserUrl(userEmail); try { var response = MakeGetRequest(userUrl, Token); YammerUser yammerUser = YammerUser.GetInstanceFromJson(response.Substring(1, response.Length - 2)); //let's post a message now to this group bool broadcastToAll = false; string msg = string.Format(YammerMessageText, yammerUser.UserID, earnedBadge.Name, broadcastToAll.ToString(), "https://badgeapplication.magenic.com/", earnedBadge.ImagePath, earnedBadge.Name, earnedBadge.Tagline); //try adding the message response = MakePostRequest(msg, MessageUrl, Token); if (!string.IsNullOrEmpty(response)) { YammerMessage newMsg = YammerMessage.GetInstanceFromJson(response); } } catch (WebException ex) { var httpResponse = ex.Response as HttpWebResponse; if (httpResponse != null && httpResponse.StatusCode == HttpStatusCode.NotFound) { Logger.Warn <YammerPublisher>(string.Format("Problem getting Yammer information for URL: {0}. Most likely cause is the user was not setup in Yammer, continuing to process.", userUrl)); } else { throw; } } }
private YammerMessage GetYammerMessage(JToken message) { var yammerMessage = new YammerMessage(); yammerMessage.Id = Convert.ToInt32(message["id"]); yammerMessage.SenderId = Convert.ToInt32(message["sender_id"]); yammerMessage.RepliedToId = message.Value <int?>("replied_to_id"); yammerMessage.CreatedAt = (DateTime)message["created_at"]; yammerMessage.NetworkId = Convert.ToInt32(message["network_id"]); yammerMessage.MessageType = message["message_type"].ToString(); yammerMessage.GroupId = message.Value <int?>("group_id"); yammerMessage.Body = message["body"]["plain"].ToString(); yammerMessage.Url = message["web_url"].ToString(); var attachments = new List <string>(); foreach (var attachment in JArray.Parse(message["attachments"].ToString())) { attachments.Add(attachment["web_url"].ToString()); } yammerMessage.AttachmentUrls = attachments; return(yammerMessage); }