Пример #1
0
        public IActionResult Items()
        {
            var vm     = new RSSItemsViewModel();
            var itemVm = new RSSItemViewModel();

            vm.RSSItem = itemVm;

            _rssService.PopulateRSSItemsViewModel(vm);

            return(View(vm));
        }
Пример #2
0
        public IActionResult Items(RSSItemsViewModel vm)
        {
            if (ModelState.IsValid)
            {
                if (!_rssService.AddRSSItem(vm.RSSItem))
                {
                    return(View(vm));
                }
            }

            return(RedirectToAction("Items", "Home"));
        }
Пример #3
0
        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;
        }