public async Task <ActionResult> CreateAsync( [Bind(Include = "Title,Details,RelatedLink")] RssFeedViewModel rssFeedVm, HttpPostedFileBase imageFile) { if (!ModelState.IsValid) { return(View(rssFeedVm)); } var newsFeed = Mapper.Map <NewsFeed>(rssFeedVm); newsFeed.NewsDate = DateTime.Now; if (imageFile != null && imageFile.FileName != null) { var imageMimeType = imageFile.ContentType; if ( !ImageProcessorUtils.ImageMimeTypes.Any( mimeType => imageMimeType.Equals(mimeType, StringComparison.OrdinalIgnoreCase))) { ModelState.AddModelError(string.Empty, string.Format(Resources.NotAnImage, imageFile.FileName)); return(RedirectToAction("Create")); } var imageStream = imageFile.InputStream; var imageBytes = await imageStream.ToByteArrayAsync().ConfigureAwait(false); newsFeed.ImageData = imageBytes; newsFeed.ImageMimeType = imageMimeType; } await _feedSource.AddNewsAsync(newsFeed).ConfigureAwait(false); TempData[TempDataContants.NotificationKey] = string.Format(Resources.NewsSuccessfullyCreated, newsFeed.Title); return(RedirectToAction("Index")); }
public ViewResult Index(RssFeedViewModel viewModel) { try { if (!ModelState.IsValid) { throw new Exception(); } if (viewModel.CSVFile != null) { string wwwRootPath = hostingEnvironment.WebRootPath; var csvText = _rssFeedRepository.ReadCSV(viewModel.CSVFile); string savedFile = _rssFeedRepository.CreateCSVFileInRoot(wwwRootPath, viewModel.CSVFile.FileName, csvText); ViewBag.SavedFile = savedFile; return(View("ConvertBResult")); } string url = viewModel.RSSFeedURl; var feedItems = _rssFeedRepository.getFeedItemsFromURL(url); IEnumerable <FeedArticlesAndDetail> feedArticlesAndDetails = _rssFeedRepository.ConvertAResult(feedItems.ToList()); return(View("ConvertAResult", feedArticlesAndDetails)); } catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; return(View("ErrorPage")); } }
private string RenderModel(RssFeedViewModel model) { StringBuilder sb = new StringBuilder(); sb.Append("<div class=\"rssfeedviewer\">"); sb.Append("<div class=\"rssfeedviewerwrapper\">"); if (model.ShowTitle) { sb.Append("<h4>" + HttpUtility.HtmlEncode(model.Channel.Title) + "</h4>"); } if (model.ShowDescription) { sb.Append(model.Channel.Description); } sb.Append("<ul>"); foreach (var item in model.Channel.GetChannelItems(model.MaxItems)) { sb.Append("<li><a href=\"" + item.Link + "\">" + item.Title + "</a><br />"); sb.Append(item.Description + "</li>"); } sb.Append("</ul>"); sb.Append("</div>"); sb.Append("</div>"); return(sb.ToString()); }
public async Task <ActionResult> Index(RssFeedViewModel model, string btnSearch) { try { IEnumerable <Domain.RssFeed> items = null; if (string.IsNullOrEmpty(btnSearch)) { items = await GetExternalRssList(model); model.Search = string.Empty; } else { if (model.Search == null) { model.Search = ""; } items = _db.RssFeed.Where(x => x.Description.Contains(model.Search) || x.Author.Contains(model.Search) || x.Title.Contains(model.Search)).ToList(); } model.Items = items.ToList(); return(View(model)); } catch (Exception ex) { ViewBag.Error = ex.Message; return(View(model)); } }
public RssFeedView(string url, string title) { InitializeComponent (); BindingContext = new RssFeedViewModel(url); Title = title; if (!CrossConnectivity.Current.IsConnected) DisplayAlert ("Error", "Revisa tu conexión de internet y vuelve a intentarlo.", "Aceptar"); }
public async Task <IHttpActionResult> Delete(RssFeedViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _rssFeedBuilder.UpdateAsync(model); return(Ok()); }
private static IEnumerable <SyndicationItem> GetFeedItems(RssFeedViewModel rssFeedViewModel, UrlHelper urlHelper) { return((from post in rssFeedViewModel.Posts let textContent = new TextSyndicationContent(post.PostContent) let url = rssFeedViewModel.BlogUrl.TrimEnd('/') + urlHelper.RouteUrl("IndividualPost", new { year = post.PostYear, month = post.PostMonth, url = post.PostUrl }) let date = post.PostEditedDate ?? post.PostAddedDate select new SyndicationItem(post.PostTitle, textContent, new Uri(url), url, date)).ToList()); }
public IActionResult Index() { var RSSFeedData = this.rssFeedRepository.GetListedFeed("item"); var model = new RssFeedViewModel() { RssList = RSSFeedData, }; return(View(model)); }
public void Edit(RssFeedViewModel feed) { var entity = this.repository.GetById(feed.Id); if (entity != null) { entity.Caption = feed.Caption; entity.Uri = feed.Link; this.repository.SaveChanges(); } }
public void Add(RssFeedViewModel newFeed) { if (newFeed == null) { throw new ArgumentNullException(); } var newEntity = this.repository.Create(); newEntity.Caption = newFeed.Caption; newEntity.Uri = newFeed.Link; this.repository.Add(newEntity); this.repository.SaveChanges(); }
public ActionResult Index(RssFeedViewModel model) { if (model.URL == null) { throw new ArgumentException("Model state was invalid"); } var RSSFeedData = this.rssFeedRepository.GetSpecificFeed(model.URL, "item"); var viewModel = new RssFeedViewModel() { RssFeed = RSSFeedData, URL = model.URL }; return(View(viewModel)); }
static RssFeedFactory() { AutoMapperConfig.ConfigureViewModelMapping(); FeedVms = new RssFeedViewModel[FeedCount]; for (var i = 0; i < FeedCount; i++) { FeedVms[i] = new RssFeedViewModel(i, string.Format("title{0}", i), string.Format("details{0}", i), string.Empty, DateTime.Now.AddMilliseconds(-i), false, string.Empty); } _Feeds = new NewsFeed[FeedCount]; for (var i = 0; i < FeedCount; i++) { _Feeds[i] = Mapper.Map <NewsFeed>(FeedVms[i]); } }
public IActionResult Index() { var model = new RssFeedViewModel(); model.Search = ""; if (_db.RssFeed.Any()) { model.Items = _db.RssFeed.ToList(); } var userData = _db.UserData.FirstOrDefault(x => x.Description == "RssFeed"); if (userData != null) { model.Url = userData.Value; } return(View(model)); }
public async Task <IHttpActionResult> Put(RssFeedViewModel model) { if (String.IsNullOrEmpty(model.ContentSourceId) && !User.IsInRole(AppRoles.SystemAdmin)) { if (String.IsNullOrEmpty(model.TeamId)) { ModelState.AddModelError("model.TeamId", "Team is Required"); } if (String.IsNullOrEmpty(model.SchoolId)) { ModelState.AddModelError("model.SchoolId", "School is Required"); } if (String.IsNullOrEmpty(model.SportId)) { ModelState.AddModelError("model.SportId", "Sport is Required"); } if (!String.IsNullOrEmpty(model.TeamId)) { ModelState.Remove("model.SchoolId"); ModelState.Remove("model.SportId"); } if (!String.IsNullOrEmpty(model.SchoolId)) { ModelState.Remove("model.TeamId"); ModelState.Remove("model.SportId"); } if (!String.IsNullOrEmpty(model.SportId)) { ModelState.Remove("model.SchoolId"); ModelState.Remove("model.TeamId"); } } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _rssFeedBuilder.UpdateAsync(model); return(Ok()); }
public static SyndicationFeed GetRssFeedData(RssFeedViewModel rssFeedViewModel, UrlHelper urlHelper) { var mostRecentPost = rssFeedViewModel.Posts.FirstOrDefault(); var lastUpdateDateTime = (mostRecentPost != null && mostRecentPost.PostEditedDate.HasValue) ? mostRecentPost.PostEditedDate.Value : DateTime.MinValue; var feed = new SyndicationFeed(rssFeedViewModel.BlogTitle, rssFeedViewModel.BlogCaption, new Uri(rssFeedViewModel.BlogUrl), string.Format("{0}{1}", DateTime.Now.ToString("MM_dd_yyyy"), DateTime.Now.ToBinary()), lastUpdateDateTime) { Copyright = new TextSyndicationContent("Copyright " + DateTime.Now.Year), Description = new TextSyndicationContent("This is the feed for " + rssFeedViewModel.BlogTitle), Generator = rssFeedViewModel.BlogUrl, Items = GetFeedItems(rssFeedViewModel, urlHelper), Language = rssFeedViewModel.BlogLanguage, LastUpdatedTime = lastUpdateDateTime, }; return(feed); }
private async Task <IEnumerable <Domain.RssFeed> > GetExternalRssList(RssFeedViewModel model) { using (var client = new HttpClient()) { var RssData = await client.GetStringAsync(model.Url); XDocument xml = XDocument.Parse(RssData); var items = (from x in xml.Descendants("item") select new Domain.RssFeed { Title = (x.Element("title") != null ? (string)x.Element("title") : null), Link = (x.Element("link") != null ? (string)x.Element("link") : null), Description = (x.Element("description") != null ? (string)x.Element("description") : null), DatePublish = (x.Element("pubDate") != null ? (string)x.Element("pubDate") : null), Author = (x.Element("author") != null ? (string)x.Element("author") : null) }); _db.RssFeed.RemoveRange(_db.RssFeed); await _db.RssFeed.AddRangeAsync(items); if (_db.UserData.Any()) { var userData = await _db.UserData.FirstOrDefaultAsync(x => x.Description == "RssFeed"); if (userData != null) { userData.Value = model.Url; _db.UserData.Update(userData); } } else { await _db.UserData.AddAsync(new UserData { Description = "RssFeed", Value = model.Url }); } await _db.SaveChangesAsync(); return(items); } }
public ActionResult Index(ContentBlock block) { var model = new RssFeedViewModel { Channel = new RSSChannel(Factory.CreateEventLogger()) }; if (block != null) { var feedUrl = block.BaseSettings.GetSettingOrEmpty("FeedUrl"); model.Channel.LoadFromFeed(feedUrl); model.ShowTitle = block.BaseSettings.GetBoolSetting("ShowTitle"); model.ShowDescription = block.BaseSettings.GetBoolSetting("ShowDescription"); var max = block.BaseSettings.GetIntegerSetting("MaxItems"); if (max <= 0) { max = 5; } model.MaxItems = max; } return(View(model)); }
// // GET: /ContentBlocks/RssFeedViewer/ public ActionResult Index(ContentBlock block) { RssFeedViewModel model = new RssFeedViewModel(); model.Channel = new RSSChannel(new MerchantTribe.Commerce.EventLog()); if (block != null) { string feedUrl = block.BaseSettings.GetSettingOrEmpty("FeedUrl"); model.Channel.LoadFromFeed(feedUrl); model.ShowTitle = block.BaseSettings.GetBoolSetting("ShowTitle"); model.ShowDescription = block.BaseSettings.GetBoolSetting("ShowDescription"); int max = block.BaseSettings.GetIntegerSetting("MaxItems"); if (max <= 0) { max = 5; } model.MaxItems = max; } return(View(model)); }
public string Render(MerchantTribe.Commerce.MerchantTribeApplication app, dynamic viewBag, MerchantTribe.Commerce.Content.ContentBlock block) { RssFeedViewModel model = new RssFeedViewModel(); model.Channel = new RSSChannel(new MerchantTribe.Commerce.EventLog()); if (block != null) { string feedUrl = block.BaseSettings.GetSettingOrEmpty("FeedUrl"); model.Channel.LoadFromFeed(feedUrl); model.ShowTitle = block.BaseSettings.GetBoolSetting("ShowTitle"); model.ShowDescription = block.BaseSettings.GetBoolSetting("ShowDescription"); int max = block.BaseSettings.GetIntegerSetting("MaxItems"); if (max <= 0) { max = 5; } model.MaxItems = max; } return(RenderModel(model)); }
public async Task <ActionResult> EditAsync( [Bind(Include = "FeedId,Title,Details,RelatedLink")] RssFeedViewModel rssFeedVm, HttpPostedFileBase imageFile) { if (!ModelState.IsValid) { return(View(rssFeedVm)); } var existingNews = await _feedSource.GetNewsAsync(rssFeedVm.FeedId).ConfigureAwait(false); var newsFeed = Mapper.Map <NewsFeed>(rssFeedVm); newsFeed.NewsDate = existingNews.NewsDate; if (imageFile != null && imageFile.FileName != null) { var imageStream = imageFile.InputStream; var imageBytes = await imageStream.ToByteArrayAsync().ConfigureAwait(false); newsFeed.ImageData = imageBytes; newsFeed.ImageMimeType = imageFile.ContentType; } else { newsFeed.ImageData = existingNews.ImageData; newsFeed.ImageMimeType = existingNews.ImageMimeType; } var isSuccessfullyUpdated = await _feedSource.UpdateNewsAsync(newsFeed).ConfigureAwait(false); if (!isSuccessfullyUpdated) { ModelState.AddModelError(string.Empty, Resources.FailedToUpdate); return(View(rssFeedVm)); } TempData[TempDataContants.NotificationKey] = string.Format(Resources.NewsSuccessfullyUpdated, newsFeed.Title); return(RedirectToAction("Index")); }
public ActionResult Details(int rssFeedId, int recordCount) { RssFeedViewModel model = _rssFeedProvider.GetRssFeedById(rssFeedId, recordCount); return(View("Views/RssFeed.cshtml", model)); }
public async Task UpdateAsync(RssFeedViewModel model) { try { //Delete Keywords from Database var dbItem = await _repo.RssFeeds.GetByIdAsync(model.Id, m => m.Include(mm => mm.RssKeywords)); if (model.DateDeletedUtc != null) { var dbPosts = await _repo.Posts.Where(m => m.FeedId == model.Id).ToListAsync(); foreach (var post in dbPosts) { post.DateDeletedUtc = DateTime.UtcNow; } foreach (var post in dbPosts) { await _repo.Posts.AddOrUpdateAndSaveAsync(post); } } while (dbItem.RssKeywords.Count > 0) { dbItem.RssKeywords.Remove(dbItem.RssKeywords.FirstOrDefault()); } await _repo.SaveAsync(); var idType = 0; if (dbItem.TeamId == null && model.TeamId != null) { idType = 1; } else if (dbItem.SchoolId == null && model.SchoolId != null) { idType = 2; } else if (dbItem.SportId == null && model.SportId != null) { idType = 3; } else if (model.SportId == null && model.TeamId == null && model.SchoolId == null) { idType = 4; } dbItem = MapUpdate().CreateMapper().Map(model, dbItem); if (idType == 1) { dbItem.SchoolId = null; dbItem.SportId = null; } else if (idType == 2) { dbItem.TeamId = null; dbItem.SportId = null; } else if (idType == 3) { dbItem.SchoolId = null; dbItem.TeamId = null; } else if (idType == 4) { dbItem.TeamId = null; dbItem.SportId = null; dbItem.SchoolId = null; } await _repo.RssFeeds.AddOrUpdateAndSaveAsync(dbItem); } catch (Exception ex) { throw; } }
public async Task AddAsync(RssFeedViewModel model, string userId) { //model.CreatedBy = userId; var currentUser = _repo.Users.Where(m => m.Id == userId).Include("ContentSource").FirstOrDefault(); var idType = 0; if (model.TeamId != null) { idType = 1; } else if (model.SchoolId != null) { idType = 2; } else { idType = 3; } //model.CreatedBy = currentUser.ContentSource.Id; if (ClaimsPrincipal.Current.IsInRole(AppRoles.SystemAdmin)) { var dbItem2 = MapAdminAdd(userId).CreateMapper().Map <RssFeed>(model); if (idType == 1) { dbItem2.SchoolId = null; dbItem2.SportId = null; } else if (idType == 2) { dbItem2.TeamId = null; dbItem2.SportId = null; } else { dbItem2.TeamId = null; dbItem2.SchoolId = null; } await _repo.RssFeeds.AddOrUpdateAndSaveAsync(dbItem2); return; } var dbItem = MapAdd(currentUser.ContentSourceId, userId).CreateMapper().Map <RssFeed>(model); if (idType == 1) { dbItem.SchoolId = null; dbItem.SportId = null; } else if (idType == 2) { dbItem.TeamId = null; dbItem.SportId = null; } else { dbItem.TeamId = null; dbItem.SchoolId = null; } await _repo.RssFeeds.AddOrUpdateAndSaveAsync(dbItem); }
public async Task <IHttpActionResult> Post(RssFeedViewModel model) { if (User.IsInRole("System_Admin")) { if (String.IsNullOrEmpty(model.TeamId)) { ModelState.AddModelError("model.TeamId", "Team is Required"); } if (String.IsNullOrEmpty(model.SchoolId)) { ModelState.AddModelError("model.SchoolId", "School is Required"); } if (String.IsNullOrEmpty(model.SportId)) { ModelState.AddModelError("model.SportId", "Sport is Required"); } if (!String.IsNullOrEmpty(model.TeamId) || ClaimsPrincipal.Current.IsInRole("ContentSource")) { ModelState.Remove("model.SchoolId"); ModelState.Remove("model.SportId"); } if (!String.IsNullOrEmpty(model.SchoolId) || ClaimsPrincipal.Current.IsInRole("ContentSource")) { ModelState.Remove("model.TeamId"); ModelState.Remove("model.SportId"); } if (!String.IsNullOrEmpty(model.SportId) || ClaimsPrincipal.Current.IsInRole("ContentSource")) { ModelState.Remove("model.SchoolId"); ModelState.Remove("model.TeamId"); } } var userId = User.Identity.GetUserId(); if (User.IsInRole("TeamAdmin")) { var teamId = _repo.TeamAdmins.Where(m => m.UserId == userId).FirstOrDefault().TeamId; model.TeamId = teamId; } if (User.IsInRole("SchoolAdmin")) { var schoolId = _repo.SchoolAdmins.Where(m => m.UserId == userId).FirstOrDefault().SchoolId; model.SchoolId = schoolId; } //try //{ // var currentUser = _repo.Users.Where(m => m.Id == userId).Include("ContentSource").FirstOrDefault(); // var name = currentUser.ContentSource.ContentSourceName; // model.CreatedBy = name; //} //catch (Exception ex) //{ // throw; //} if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _rssFeedBuilder.AddAsync(model, userId); return(Ok()); }
public RssFeedsPage() { InitializeComponent(); BindingContext = viewModel = new RssFeedViewModel(Shared.Constants.CommandConstants.VIEWS.RssFeeds); }
public async Task <IActionResult> Detail(string link, string sortType = SortTypes.None) { RssFeedViewModel viewModel = await _parser.ParseArticlesAsync(link, sortType); return(View(viewModel)); }