private void InitializeContent(NewsFeedItem newsFeedContent) { ContentContainer.Child = null; if (newsFeedContent == null || newsFeedContent.Visual == null) { return; } var binding = newsFeedContent.Visual.Bindings.FirstOrDefault(i => i.Template == Model.Enums.Template.NewsFeedGeneric); if (binding == null) { return; } if (binding.Container.Children.OfType <AdaptiveImage>().Any(i => i.Placement == Model.Enums.Placement.Hero)) { var heroStyle = new PreviewNewsFeedItemContentHeroStyle(); heroStyle.Initialize(binding); ContentContainer.Child = heroStyle; } else { var basicStyle = new PreviewNewsFeedItemBasicContentStyle(); basicStyle.Initialize(binding); ContentContainer.Child = basicStyle; } }
public ActionResult CreateOrUpdateNewsItem(NewsFeedItem newNews) { //newNews.EventDateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc) // .AddMilliseconds(1310522400000) // .ToLocalTime(); //if (newNews.IsEvent== true) //{ // DateTime tempTime = DateTime.Parse(newNews.JSEventDateTime, // null, // DateTimeStyles.RoundtripKind); // TimeZone.CurrentTimeZone.ToLocalTime(tempTime); // newNews.EventDateTime = tempTime; //} if (newNews.IsEvent == true) { newNews.EventDateTime = DateTime.Parse(newNews.JSEventDateTime); } newNews.TimeStamp = DateTime.Now; if (newNews.ItemId == 0) { dB.NewsFeedItems.Add(newNews); } else { dB.Entry(newNews).State = EntityState.Modified; } dB.SaveChanges(); return(RedirectToAction("NewsFeedIndex")); }
public IHttpActionResult PutNewsFeedItem(int id, NewsFeedItem newsFeedItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != newsFeedItem.NewsFeedItemId) { return(BadRequest()); } db.Entry(newsFeedItem).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!NewsFeedItemExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult DeleteItem(int itemId) { NewsFeedItem itemToDelete = dB.NewsFeedItems.Single(f => f.ItemId == itemId); dB.NewsFeedItems.Remove(itemToDelete); dB.SaveChanges(); return(RedirectToAction("NewsFeedIndex")); }
public IHttpActionResult GetNewsFeedItem(int id) { NewsFeedItem newsFeedItem = db.NewsFeedItems.Find(id); if (newsFeedItem == null) { return(NotFound()); } return(Ok(newsFeedItem)); }
public IHttpActionResult PostNewsFeedItem(NewsFeedItem newsFeedItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.NewsFeedItems.Add(newsFeedItem); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = newsFeedItem.NewsFeedItemId }, newsFeedItem)); }
public async Task <bool> Delete(NewsFeedItem newsFeedItem) { /*if (_memoryCache.TryGetValue("NewsItems", out IQueryable<NewsFeedItem> newsItems)) * { * _memoryCache.Remove("NewsItems"); * }*/ _newsFeedContext.NewsFeedItems.Remove(newsFeedItem); await _newsFeedContext.SaveChangesAsync(); return(true); }
internal void RenderContent() { NewsFeedItem item = DataContext as NewsFeedItem; if (item == null) { return; } _scroller.ScrollToTop(); VisualStateManager.GoToState(this, Success.Name, true); try { // Build XAML using HtmlToXamlConverter, from here: http://windowsclient.net/downloads/folders/controlgallery/entry2313.aspx // Note that this has been modified quite a bit to add image support and disable some features. Search for "DISABLE" in // HtmlToXamlConverter.cs to see what's been turned off. string xaml = HtmlToXamlConverter.ConvertHtmlToXaml(item.Body, true); // Remove dumb images xaml = Regex.Replace(xaml, "<(Inline|Block)UIContainer><Image Source=\"[^\"]*(feeds\\.wordpress|feedburner|doubleclick).*?\" /></(Inline|Block)UIContainer>", string.Empty); // Try to repair images that use relative paths beginning with /. if (item.Uri != null) { xaml = Regex.Replace(xaml, "Source=\"(/.*?)\"", "Source=\"http://" + item.Uri.Host + "$1\""); } // Remove empty paragraphs. xaml = Regex.Replace(xaml, "<Paragraph />", string.Empty); xaml = Regex.Replace(xaml, "<Paragraph>\\s*?</Paragraph>", string.Empty); xaml = Regex.Replace(xaml, "<Paragraph><LineBreak />", "<Paragraph>"); xaml = Regex.Replace(xaml, "<LineBreak /></Paragraph>", "</Paragraph>"); xaml = Regex.Replace(xaml, "<Paragraph>(<(Run|LineBreak) />\\s)*?</Paragraph>", string.Empty); xaml = Regex.Replace(xaml, "<Paragraph><Run> </Run></Paragraph>", string.Empty); // Build FlowDocument. byte[] byteArray = Encoding.UTF8.GetBytes(xaml); using (MemoryStream stream = new MemoryStream(byteArray)) { FlowDocument document = XamlReader.Load(stream) as FlowDocument; _richTextBox.Document = document; _richTextBox.UpdateLayout(); SizeImages(); } } catch { VisualStateManager.GoToState(this, Fail.Name, true); } }
public async Task <NewsFeedItem> Add(NewsFeedItem newsFeedItem) { /*if (_memoryCache.TryGetValue("NewsItems", out IQueryable<NewsFeedItem> newsItems)) * { * _memoryCache.Remove("NewsItems"); * }*/ await _newsFeedContext.NewsFeedItems.AddAsync(newsFeedItem); newsFeedItem.DateCreated = DateTime.UtcNow; await _newsFeedContext.SaveChangesAsync(); return(newsFeedItem); }
public IHttpActionResult DeleteNewsFeedItem(int id) { NewsFeedItem newsFeedItem = db.NewsFeedItems.Find(id); if (newsFeedItem == null) { return(NotFound()); } db.NewsFeedItems.Remove(newsFeedItem); db.SaveChanges(); return(Ok(newsFeedItem)); }
public ActionResult Create(NewsFeedItem newsfeeditem) { if (ModelState.IsValid) { newsfeeditem.ID = Guid.NewGuid(); newsfeeditem.Created = DateTime.Now; newsfeeditem.Modified = DateTime.Now; newsfeeditem.UserID = _userRepo.FindAll(u => u.UserName == User.Identity.Name).FirstOrDefault().ID; _newsFeedItemRepo.Add(newsfeeditem); return(RedirectToAction("Index", "NewsFeed")); } return(View(newsfeeditem)); }
// // GET: /NewsFeedItem/Create public ActionResult Create(int?ItemType = -1) { NewsFeedItem n = new NewsFeedItem(); n.ItemType = (int)ItemType; ViewBag.type = ItemType; if (ItemType <= 0 || ItemType > 4) { return(RedirectToAction("Index", "NewsFeed")); } return(View(n)); }
public async Task <IActionResult> Add(NewsFeedItem newsFeedItem) { /*if (_cancellationTokenSource != null && _cancellationTokenSource.Token.CanBeCanceled) * { * _cancellationTokenSource.Cancel(); * _cancellationTokenSource.Dispose(); * } * _cancellationTokenSource = new CancellationTokenSource();*/ ResetCache(); await _newsFeedService.Add(newsFeedItem); return(Ok(newsFeedItem)); }
private void GetTwitterStuff() { try { using (var wc = new WebClient()) { var str = wc.DownloadString(AppConfig.WebsitePath + "news.xml"); if (string.IsNullOrWhiteSpace(str)) { throw new Exception("Null news feed."); } var doc = System.Xml.Linq.XDocument.Parse(str); var nitems = doc.Root.Elements("item"); var feeditems = new List <NewsFeedItem>(); foreach (var f in nitems) { var nf = new NewsFeedItem { Message = (string)f }; var dt = f.Attribute("date"); if (dt == null) { continue; } DateTime dto; if (!DateTime.TryParse(dt.Value, out dto)) { continue; } nf.Time = dto; feeditems.Add(nf); } Dispatcher.BeginInvoke( new Action( () => this.ShowTwitterStuff(feeditems.OrderByDescending(x => x.Time).Take(5).ToList()))); } } catch (Exception e) { Log.Warn("GetTwitterStuff", e); Dispatcher.Invoke(new Action(() => textBlock5.Text = "Could not retrieve news feed.")); } }
public async Task <NewsFeedItem> Update(NewsFeedItem newsFeedItem) { /*if (_memoryCache.TryGetValue("NewsItems", out IQueryable<NewsFeedItem> newsItems)) * { * _memoryCache.Remove("NewsItems"); * }*/ var newsItemForChanges = await _newsFeedContext.NewsFeedItems.SingleAsync(x => x.Id == newsFeedItem.Id); newsItemForChanges.Body = newsFeedItem.Body; newsItemForChanges.Title = newsFeedItem.Title; newsItemForChanges.AllowComments = newsFeedItem.AllowComments; _newsFeedContext.NewsFeedItems.Update(newsItemForChanges); await _newsFeedContext.SaveChangesAsync(); return(newsFeedItem); }
private static List <NewsFeedItem> ParseFeed(string rss) { var list = new List <NewsFeedItem>(); try { var xdoc = XDocument.Parse(rss); var items = xdoc.Descendants("item"); var id = 0; foreach (var item in items) { NewsFeedItem article = new NewsFeedItem(); // Fri, 04 May 2018 15:31:44 EDT <-- district version // Wed, 02 May 2018 12:58:20 -0000 <-- RSS aggregator version string dateString = item.Element("pubDate").Value; DateTime pubDate = DateTime.MinValue; RSSDateTimeUtility.TryParseRfc822DateTime(dateString, out pubDate); if (pubDate == DateTime.MinValue) { RSSDateTimeUtility.TryParseRfc3339DateTime(dateString, out pubDate); } article.Author = ""; article.Title = item.Element("title") != null?item.Element("title").Value : ""; article.Description = item.Element("description") != null?item.Element("description").Value : ""; article.Link = item.Element("link") != null?item.Element("link").Value : ""; article.PublishDate = item.Element("pubDate") != null ? pubDate : DateTime.MinValue; article.Id = (id++).ToString(); list.Add(article); } } catch { } return(list); }
public void feedLoaded(string feed) { //System.Diagnostics.Debug.WriteLine ("====> in feed Loaded"); var topObj = JObject.Parse(feed); var feedObj = topObj["feed"]; var feedArray = feedObj ["data"]; foreach (var obj2 in feedArray) { NewsFeedItem newitem = new NewsFeedItem(); JObject obj = (JObject)obj2; newitem.From = obj["from"]["name"].ToString(); newitem.Created_time = DateTime.Parse(obj["created_time"].ToString()).Humanize(); JToken msg; if (obj.TryGetValue("message", out msg)) { newitem.Message = obj ["message"].ToString(); } else if (obj.TryGetValue("story", out msg)) { newitem.Message = obj ["story"].ToString(); } if (obj.TryGetValue("picture", out msg)) { newitem.Picture = obj ["picture"].ToString(); } if (obj.TryGetValue("id", out msg)) { newitem.FbURI = getURIfromGraphId(obj["id"].ToString()); newitem.WebURI = getWebURIfromGraphId(obj["id"].ToString()); } newitem.Place = ""; //System.Diagnostics.Debug.WriteLine ("====>JsonObject" + newitem.From); NewsFeedItems.Add(newitem); } //System.Diagnostics.Debug.WriteLine ("=====> After Feed Loaded"); }
internal override void ProcessResponse(object responseObject) { string response = responseObject.ToString(); try { using (StringReader stringReader = new StringReader(response)) { XmlReader xmlReader = XmlReader.Create(stringReader); SyndicationFeed feed = SyndicationFeed.Load(xmlReader); if (feed != null) { foreach (SyndicationItem syndicationItem in feed.Items) { NewsFeedItem feedItem = new NewsFeedItem { SourceType = SourceType.News }; feedItem.Title = HttpUtility.HtmlDecode(syndicationItem.Title.Text); feedItem.Date = syndicationItem.PublishDate.LocalDateTime; if (feedItem.Date < MinDate) { continue; } TextSyndicationContent content = syndicationItem.Content as TextSyndicationContent; if (content != null) { // <content type="html"> feedItem.Body = content.Text; } else if (syndicationItem.Content != null && !string.IsNullOrEmpty(syndicationItem.Content.ToString())) { feedItem.Body = syndicationItem.Content.ToString(); } else { var full = syndicationItem.ElementExtensions.Where(w => w.OuterName == "encoded").FirstOrDefault(); if (full != null) { feedItem.Body = full.GetObject <XmlElement>().InnerText; } else if (syndicationItem.Summary != null) { feedItem.Body = syndicationItem.Summary.Text; } else { // throw this out because there's no content continue; } } feedItem.Body = feedItem.Body.Trim(); feedItem.Summary = HttpUtility.HtmlDecode(StripHtml(syndicationItem.Summary != null ? syndicationItem.Summary.Text : feedItem.Body)).Trim(); Uri itemUri = null; itemUri = syndicationItem.BaseUri; if (itemUri == null) { // Get links out of feedburner feeds. var originalLink = syndicationItem.ElementExtensions.Where(w => w.OuterName.ToUpper(CultureInfo.InvariantCulture) == "ORIGLINK").FirstOrDefault(); if (originalLink != null) { Uri.TryCreate(originalLink.GetObject <XmlElement>().InnerText, UriKind.RelativeOrAbsolute, out itemUri); } } if (itemUri == null) { // Get links from <link> elements. var link = (from self in syndicationItem.Links where self.RelationshipType.ToUpper(CultureInfo.InvariantCulture) == "ALTERNATE" select self).FirstOrDefault(); if (link == null) { link = syndicationItem.Links.FirstOrDefault(); } if (link != null) { itemUri = link.Uri; } } if (itemUri == null) { // As a last resort, use the feed URL. itemUri = new Uri(Query); } feedItem.Uri = itemUri; var author = syndicationItem.ElementExtensions.Where(w => w.OuterName == "creator").FirstOrDefault(); if (author != null) { feedItem.Author = HttpUtility.HtmlDecode(author.GetObject <XmlElement>().InnerText); } RaiseGotNewFeedItem(feedItem); } } } } catch { } }
private void GetTwitterStuff() { try { using (var wc = new WebClient()) { var str = wc.DownloadString(AppConfig.WebsitePath + "news.xml"); if (string.IsNullOrWhiteSpace(str)) { throw new Exception("Null news feed."); } var doc = System.Xml.Linq.XDocument.Parse(str); var nitems = doc.Root.Elements("item"); var feeditems = new List<NewsFeedItem>(); foreach (var f in nitems) { var nf = new NewsFeedItem { Message = (string)f }; var dt = f.Attribute("date"); if(dt == null) continue; DateTime dto; if(!DateTime.TryParse(dt.Value,out dto)) continue; nf.Time = dto; feeditems.Add(nf); } Dispatcher.BeginInvoke( new Action( () => this.ShowTwitterStuff(feeditems.OrderByDescending(x => x.Time).Take(5).ToList()))); } } catch(Exception) { Dispatcher.Invoke(new Action(() => textBlock5.Text = "Could not retrieve news feed.")); } }
public async Task <NewsFeedItem> CreateNewsFeedItem(NewsFeedItem item) { return(item); }
public void Setup() { _newsFeedItem = new NewsFeedItem(); }
public async Task <NewsFeedItem> UpdateNewsFeedItem(int id, NewsFeedItem item) { return(item); }