Exemplo n.º 1
0
        ChannelStatusUpdate ParseFbStatus(FbStatus fbStatus)
        {
            var status = new ChannelStatusUpdate();

            status.ChannelStatusKey = fbStatus.StatusId;
            status.From             = fbStatus.From;
            status.To         = fbStatus.To;
            status.Status     = fbStatus.Message;
            status.DatePosted = fbStatus.DateCreated;

            foreach (var fbAttachment in fbStatus.Attachments)
            {
                var attachment = new ChannelStatusUpdateAttachment();

                attachment.MediaType       = (short)fbAttachment.MediaType;
                attachment.PreviewAltText  = fbAttachment.PreviewAltText;
                attachment.PreviewImageUrl = fbAttachment.PreviewImageUrl;
                attachment.TargetUrl       = fbAttachment.TargetUrl;

                status.Attachments.Add(attachment);
            }

            return(status);
        }
        ChannelStatusUpdate ParseFbStatus(FbStatus fbStatus)
        {
            var status = new ChannelStatusUpdate();

            status.ChannelStatusKey = fbStatus.StatusId;
            status.From = fbStatus.From;
            status.To = fbStatus.To;
            status.Status = fbStatus.Message;
            status.DatePosted = fbStatus.DateCreated;

            foreach (var fbAttachment in fbStatus.Attachments)
            {
                var attachment = new ChannelStatusUpdateAttachment();

                attachment.MediaType = (short)fbAttachment.MediaType;
                attachment.PreviewAltText = fbAttachment.PreviewAltText;
                attachment.PreviewImageUrl = fbAttachment.PreviewImageUrl;
                attachment.TargetUrl = fbAttachment.TargetUrl;

                status.Attachments.Add(attachment);
            }

            return status;
        }
Exemplo n.º 3
0
        public IEnumerable<ChannelStatusUpdate> GetUpdates(int pageSize)
        {
            var contacts = GetYammerContacts();
            var result = YammerWebRequest.PerformRequest(new Uri("https://www.yammer.com/api/v1/messages.xml"),
                ChannelHelper.ConsumerKey, ChannelHelper.ConsumerSecret, ChannelHelper.Token, ChannelHelper.TokenSecret);

            var dict = new Dictionary<string, List<ChannelStatusUpdate>>();

            foreach (var element in result.Element("response").Elements("messages").Elements("message"))
            {
                var update = new ChannelStatusUpdate();
                var contact = contacts.First(c => c.Id == element.Element("sender-id").Value);

                update.ChannelStatusKey = element.Element("id").Value;
                update.From = new SourceAddress(contact.Id, contact.FullName, contact.AvatarUrl);
                update.Status = element.Element("body").Element("plain").Value;
                update.DatePosted = DateTime.Parse(element.Element("created-at").Value);

                foreach (var attachmentElement in element.Descendants("attachment"))
                {
                    var attachment = new ChannelStatusUpdateAttachment();
                    var type = attachmentElement.Element("type").Value;

                    attachment.PreviewAltText = attachmentElement.Element("name").Value;
                    attachment.TargetUrl = attachmentElement.Element("web-url").Value;

                    if (type == "image")
                    {
                        attachment.MediaType = StatusAttachmentTypes.Photo;
                        attachment.PreviewImageUrl = attachmentElement.Element("image").Element("thumbnail-url").Value;
                    }
                    else
                    {
                        attachment.MediaType = StatusAttachmentTypes.Document;
                    }

                    update.Attachments.Add(attachment);
                }

                var threadid = element.Element("thread-id").Value;

                if (!dict.ContainsKey(threadid))
                    dict.Add(threadid, new List<ChannelStatusUpdate>());

                dict[threadid].Add(update);
            }

            var updates = new List<ChannelStatusUpdate>();

            foreach (var value in dict.Values)
            {
                var sortedList = value.OrderBy(c => c.DatePosted).ToList();
                var first = sortedList.First();

                first.Children.AddRange(sortedList.Skip(1));

                updates.Add(first);
            }

            return updates.OrderByDescending(s => s.SortDate);
        }
Exemplo n.º 4
0
        public IEnumerable <ChannelStatusUpdate> GetUpdates(int pageSize)
        {
            var contacts = GetYammerContacts();
            var result   = YammerWebRequest.PerformRequest(new Uri("https://www.yammer.com/api/v1/messages.xml"),
                                                           ChannelHelper.ConsumerKey, ChannelHelper.ConsumerSecret, ChannelHelper.Token, ChannelHelper.TokenSecret);

            var dict = new Dictionary <string, List <ChannelStatusUpdate> >();

            foreach (var element in result.Element("response").Elements("messages").Elements("message"))
            {
                var update  = new ChannelStatusUpdate();
                var contact = contacts.First(c => c.Id == element.Element("sender-id").Value);

                update.ChannelStatusKey = element.Element("id").Value;
                update.From             = new SourceAddress(contact.Id, contact.FullName, contact.AvatarUrl);
                update.Status           = element.Element("body").Element("plain").Value;
                update.DatePosted       = DateTime.Parse(element.Element("created-at").Value);

                foreach (var attachmentElement in element.Descendants("attachment"))
                {
                    var attachment = new ChannelStatusUpdateAttachment();
                    var type       = attachmentElement.Element("type").Value;

                    attachment.PreviewAltText = attachmentElement.Element("name").Value;
                    attachment.TargetUrl      = attachmentElement.Element("web-url").Value;

                    if (type == "image")
                    {
                        attachment.MediaType       = StatusAttachmentTypes.Photo;
                        attachment.PreviewImageUrl = attachmentElement.Element("image").Element("thumbnail-url").Value;
                    }
                    else
                    {
                        attachment.MediaType = StatusAttachmentTypes.Document;
                    }

                    update.Attachments.Add(attachment);
                }

                var threadid = element.Element("thread-id").Value;

                if (!dict.ContainsKey(threadid))
                {
                    dict.Add(threadid, new List <ChannelStatusUpdate>());
                }

                dict[threadid].Add(update);
            }

            var updates = new List <ChannelStatusUpdate>();

            foreach (var value in dict.Values)
            {
                var sortedList = value.OrderBy(c => c.DatePosted).ToList();
                var first      = sortedList.First();

                first.Children.AddRange(sortedList.Skip(1));

                updates.Add(first);
            }

            return(updates.OrderByDescending(s => s.SortDate));
        }