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