public IActionResult Items() { var vm = new RSSItemsViewModel(); var itemVm = new RSSItemViewModel(); vm.RSSItem = itemVm; _rssService.PopulateRSSItemsViewModel(vm); return(View(vm)); }
public IActionResult Items(RSSItemsViewModel vm) { if (ModelState.IsValid) { if (!_rssService.AddRSSItem(vm.RSSItem)) { return(View(vm)); } } return(RedirectToAction("Items", "Home")); }
public void PopulateRSSItemsViewModel(RSSItemsViewModel vm) { List <RSSItemViewModel> vmList = new List <RSSItemViewModel>(); IFileProvider provider = _appEnvironment.ContentRootFileProvider; IDirectoryContents contents = provider.GetDirectoryContents("wwwroot\\content"); if (!contents.Any(c => c.Name == "feed.xml")) { if (!CreateXMLFile()) { return; } } if (!XmlFilePopulated()) { return; } XDocument xdoc = XDocument.Load(contents.Where(c => c.Name == "feed.xml").FirstOrDefault().CreateReadStream()); if (xdoc != null) { List <XElement> elements = xdoc.Descendants("item").ToList(); foreach (var element in elements) { RSSItemViewModel tempVm = new RSSItemViewModel(); tempVm.Title = element.Descendants("title").FirstOrDefault()?.Value; tempVm.Description = element.Descendants("description").FirstOrDefault()?.Value; tempVm.Link = element.Descendants("link").FirstOrDefault()?.Value; string pubDate = element.Descendants("pubDate").FirstOrDefault()?.Value; DateTime pubDateTime; if (DateTime.TryParse(pubDate, out pubDateTime)) { tempVm.PublishedDate = pubDateTime; } tempVm.GUID = element.Descendants("guid").FirstOrDefault()?.Value; vmList.Add(tempVm); } } vm.RSSItems = vmList; }