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;
                }
            }
        }
示例#3
0
        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);
        }