public static void AddSingleResource(string title, string link, DateTime datepublished, int timelineId, int feedid = 2 , int resourceType = 1, string factText = "") { using (var db = new FactFluxEntities()) { Resource newResource = new Resource(); newResource.ResourceTitle = title; newResource.ResourceUrl = link; newResource.DateAdded = DateTime.Now; newResource.DatePublished = datepublished; newResource.ResourceType = resourceType; newResource.TimelineId = timelineId; newResource.FeedId = feedid; newResource.Active = true; newResource.FactText = factText; db.Resources.Add(newResource); var foundtimeLIne = db.Timelines.FirstOrDefault(x => x.TimelineId == timelineId); foundtimeLIne.LastUpdated = DateTime.Now; db.SaveChanges(); } }
public string CheckFeedsForWords(bool singleSearch = true, int feedToSearch = -1) { string updateResults = "UpdateResults: "; using (FactFluxEntities db = new FactFluxEntities()) { var feeds = db.RSSFeeds.Where(x => x.FeedId > 4).ToList(); if (feedToSearch != -1) { var feed = feeds.Where(x => x.FeedId == feedToSearch).FirstOrDefault(); updateResults = UpdateFeed(updateResults, db, feed); } else if (singleSearch) { var feed = feeds.OrderBy(x => x.LastUpdated).FirstOrDefault(); updateResults = UpdateFeed(updateResults, db, feed); } else { foreach (var feed in feeds) { updateResults = UpdateFeed(updateResults, db, feed); } } } return(updateResults); }
public ActionResult UpdateWord(int wordId, string newWord) { using (FactFluxEntities db = new FactFluxEntities()) { var word = db.Words.Where(x => x.WordId == wordId).FirstOrDefault(); word.Word1 = newWord; //delete links var deleteList = db.WordLogs.Where(x => x.WordId == wordId); foreach (var log in deleteList) { db.WordLogs.Remove(log); } //find new matching articles var articleList = db.ArticleLinks.Where(x => x.ArticleLinkTitle.Contains(newWord)).ToList(); foreach (var matchingArticle in articleList) { CreateWordLog(db, matchingArticle.DatePublished, matchingArticle.ArticleLinkId, word.WordId, newWord); } db.SaveChanges(); return(Redirect(Request.UrlReferrer.ToString())); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var req = filterContext.HttpContext.Request; var auth = req.Headers["Authorization"]; if (!String.IsNullOrEmpty(auth)) { var cred = System.Text.ASCIIEncoding.ASCII.GetString(Convert.FromBase64String(auth.Substring(6))).Split(':'); var user = new { Name = cred[0], Pass = cred[1] }; using (var db = new FactFluxEntities()) { var findUser = db.AspNetUsers.Where(x => x.UserName == user.Name).FirstOrDefault(); var userIsAdmin = findUser.AspNetRoles.Where(x => x.Id == "1").Any(); if (userIsAdmin) { return; } } } throw new Exception("Not Authorized"); }
private static string UpdateFeed(string updateResults, FactFluxEntities db, RSSFeed feed) { try { int articlesAdded = 0; if (feed.FeedType == "RSS") { articlesAdded = AddNewResourcesFromRSS(ref updateResults, db, feed); } if (feed.FeedType == "YouTube") { AddNewResourcesFromYouTube(ref updateResults, db, feed, ref articlesAdded); } feed.LastUpdated = DateTime.UtcNow; db.SaveChanges(); updateResults += "\r\n---------------Feed Num: " + feed.FeedTitle.ToString() + " New Articles: " + articlesAdded + Environment.NewLine; } catch (Exception ex) { updateResults += "\r\n---------------Feed Num: " + feed.FeedTitle.ToString() + " Error: " + ex.Message + Environment.NewLine; feed.LastUpdated = DateTime.UtcNow; db.SaveChanges(); } return(updateResults); }
private static void AddNewResourcesFromYouTube(ref string updateResults, FactFluxEntities db, RSSFeed feed, ref int articlesAdded) { var youTubeLogic = new Logic.YouTubeLogic(); var videoList = youTubeLogic.GetVidsForFeed(feed.FeedLink); var vidListResult = videoList.Result.Where(x => x.Id.VideoId != null).ToList(); foreach (var item in vidListResult) { var text = item.Snippet.Title; if (OnlyAddUniqueArticle(text)) { try { if (item.Snippet.PublishedAt == null) { item.Snippet.PublishedAt = DateTime.UtcNow; } ArticleLink newArticleLinke = CreateNewArticleLink(db, feed, item.Snippet.Title, item.Id.VideoId, item.Snippet.PublishedAt.Value); articlesAdded += 1; } catch (Exception ex) { updateResults += ex.Message; } } } }
// GET: Going to cap the max articles at 1000 for now public ActionResult LoadTimelineFromWord(string wordSlug, int howMany = 1000, int articleType = 1, int startingAt = 0, string searchPhrase = "") { if (searchPhrase == "") { searchPhrase = null; } Word searchWord; using (FactFluxEntities db = new FactFluxEntities()) { var cachedTimeline = MemoryCache.Default["timelineResources_" + wordSlug]; searchWord = db.Words.Where(x => x.Slug == wordSlug).FirstOrDefault(); var orderedResources = new List <GetTimeline_Result>(); ViewBag.MainWord = searchWord; if (cachedTimeline != null) { orderedResources = (List <GetTimeline_Result>)cachedTimeline; return(View("TimeLine", orderedResources)); } var orderedResourcesQuery = db.GetTimeline(wordSlug, howMany, articleType, startingAt, searchPhrase); orderedResources = orderedResourcesQuery.ToList(); MemoryCache.Default["timelineResources_" + wordSlug] = orderedResources; return(View("TimeLine", orderedResources)); } }
public Word CreateNewWordInternal(string singleWord) { using (FactFluxEntities db = new FactFluxEntities()) { return(CreateNewWord(db, DateTime.Now, singleWord)); } }
public ActionResult DeleteTimeline(int timelineId) { using (FactFluxEntities context = new FactFluxEntities()) { Timeline foundTimeLine = context.Timelines.FirstOrDefault(x => x.TimelineId == timelineId); var resources = context.Resources.Where(x => x.TimelineId == foundTimeLine.TimelineId).ToList(); var searchWOrds = context.SearchWords.Where(x => x.TimelineId == foundTimeLine.TimelineId).ToList(); foreach (var word in searchWOrds) { context.SearchWords.Remove(word); } foreach (var res in resources) { context.Resources.Remove(res); } context.Timelines.Remove(foundTimeLine); context.SaveChanges(); } return(RedirectToAction("Index", "Home")); }
public int ResourceCount(int feedId) { using (var db = new FactFluxEntities()) { int newFeed = db.Resources.Where(x => x.FeedId == feedId).Count(); return(newFeed); } }
public int ArticleCount(int timelineID) { using (var db = new FactFluxEntities()) { int articleCount = db.Resources.Where(x => x.TimelineId == timelineID).Count(); return(articleCount); } }
public static void NoteLastUpdated(int RssID) { using (var db = new FactFluxEntities()) { var newFeed = db.RSSFeeds.FirstOrDefault(x => x.FeedId == RssID); newFeed.LastUpdated = DateTime.Now; db.SaveChanges(); } }
public ActionResult DeleteSearchWord(int searchWordId, string slug) { using (FactFluxEntities db = new FactFluxEntities()) { var foundWord = db.SearchWords.FirstOrDefault(x => x.SearchWordId == searchWordId); db.SearchWords.Remove(foundWord); db.SaveChanges(); } return(RedirectToAction("LoadTimeline", "TimelineLogic", new { slug = slug })); }
public string ReRunWordCounts() { using (FactFluxEntities db = new FactFluxEntities()) { db.Database.CommandTimeout = 480; db.ReRunWordCounts(); } return("Success"); }
public ActionResult AddImageToWord(int wordId, HttpPostedFileBase imageFile) { using (FactFluxEntities db = new FactFluxEntities()) { var getWord = db.Words.Where(x => x.WordId == wordId).FirstOrDefault(); getWord.Image = UploadImage(imageFile); db.SaveChanges(); } return(Redirect(Request.UrlReferrer.ToString())); }
public ActionResult PublishTimeline(int timelineId) { using (FactFluxEntities context = new FactFluxEntities()) { Timeline foundTimeLine = context.Timelines.FirstOrDefault(x => x.TimelineId == timelineId); foundTimeLine.Active = true; context.SaveChanges(); } return(RedirectToAction("Index", "Home")); }
public ActionResult ChangeImage(string slug, string newImage) { using (FactFluxEntities context = new FactFluxEntities()) { Timeline foundTimeLine = context.Timelines.FirstOrDefault(x => x.TimelineSlug == slug); foundTimeLine.TimelineImage = newImage; context.SaveChanges(); } return(RedirectToAction("LoadTimeline", "TimelineLogic", new { slug = slug })); }
public ActionResult Index() { List <Timeline> context; using (FactFluxEntities db = new FactFluxEntities()) { context = db.Timelines.OrderByDescending(x => x.LastUpdated).ToList(); } return(View(context)); //return RedirectToAction("WordsInTheNews", "Word"); }
public ActionResult Cores(int timeFrame = -1) { using (FactFluxEntities db = new FactFluxEntities()) { var words = db.Words.Where(x => x.Banned == false); var popularWords = words.GroupBy(j => j.Word1).Where(g => g.Count() > 1).SelectMany(group => group).ToList(); ViewBag.Articles = db.ArticleLinks.ToList(); return(View(popularWords)); } }
public string CutLatestArticleIntoWords() { using (var db = new FactFluxEntities()) { var mostRecentArticle = db.ArticleLinks.SqlQuery( "select * from " + "articlelinks al left join wordlogs wl on wl.ArticleLinkId = al.ArticleLinkId " + "where wl.wordlogid is null order by DatePublished desc") .FirstOrDefault(); return(CutArticleIntoWords(db, mostRecentArticle)); } }
public ActionResult DeactivateResource(int resourceId, string slug) { using (FactFluxEntities db = new FactFluxEntities()) { var resource = db.Resources.FirstOrDefault(x => x.ResourceId == resourceId); resource.Active = false; db.SaveChanges(); } return(RedirectToAction("LoadTimeline", "TimelineLogic", new { slug = slug })); }
public ActionResult Ban(int wordId) { using (FactFluxEntities db = new FactFluxEntities()) { var word = db.Words.Where(x => x.WordId == wordId).FirstOrDefault(); word.Banned = true; db.SaveChanges(); return(Redirect(Request.UrlReferrer.ToString())); } }
public ActionResult CheckFeedsForResources() { using (FactFluxEntities db = new FactFluxEntities()) { var feeds = db.RSSFeeds.ToList(); foreach (var feed in feeds) { PullDownAllLinksFromFeeds(feed); } } return(Redirect(Request.UrlReferrer.ToString())); }
public ActionResult CheckRecentWords(int daysBack) { using (FactFluxEntities db = new FactFluxEntities()) { DateTime start = DateTime.Now.AddDays(-daysBack); DateTime end = DateTime.Now.AddDays(-daysBack + 1); var words = db.Words.Where(x => x.Banned == false && x.DateCreated > start && x.DateCreated < end) .OrderBy(x => x.DateCreated).ToList(); return(View(words)); } }
public ActionResult LoadOldTimeline(string slug) { Timeline findTimeLine; FactFluxEntities db = new FactFluxEntities(); findTimeLine = db.Timelines.Include("Resources").FirstOrDefault(x => x.TimelineSlug == slug); var orderedResources = db.Resources.Where(x => x.TimelineId == findTimeLine.TimelineId && x.Active == true).OrderByDescending(y => y.DatePublished).ToList(); ViewBag.Resources = orderedResources; ViewBag.SearchWords = db.SearchWords.Where(x => x.TimelineId == findTimeLine.TimelineId).ToList(); return(View(findTimeLine)); }
private static List <GetWordsWithCount_Result> GetWordsWithCountInternal(string timeFrame) { DateTime AddedSinceDate = DateTime.Now; AddedSinceDate = ChangedAddedSince(timeFrame, AddedSinceDate); List <GetWordsWithCount_Result> wordsWithCount; using (FactFluxEntities db = new FactFluxEntities()) { wordsWithCount = db.GetWordsWithCount(AddedSinceDate).Where(x => x.Count > 1).OrderByDescending(x => x.Count).ToList(); } return(wordsWithCount); }
// GET: RSSFeed/Edit/5 public ActionResult Update(int RssId, string title, string link, string image) { using (var db = new FactFluxEntities()) { var newFeed = db.RSSFeeds.FirstOrDefault(x => x.FeedId == RssId); newFeed.FeedTitle = title; newFeed.FeedLink = link; newFeed.SourceImage = image; db.SaveChanges(); } return(Redirect(Request.UrlReferrer.ToString())); }
public static bool OnlyAddUniqueArticle(string articleTitle) { using (FactFluxEntities db = new FactFluxEntities()) { var repeats = db.ArticleLinks.FirstOrDefault(x => x.ArticleLinkTitle == articleTitle); if (repeats == null) { return(true); } else { return(false); } } }
public static bool OnlyAddUniqueArticle(string articleTitle, int timelineId) { using (FactFluxEntities db = new FactFluxEntities()) { var repeats = db.Resources.FirstOrDefault(x => x.ResourceTitle == articleTitle && x.TimelineId == timelineId); if (repeats == null) { return(true); } else { return(false); } } }
public ActionResult MostDiscussed() { using (FactFluxEntities db = new FactFluxEntities()) { var topDaily = db.Words .Where(x => x.Banned == false && !db.ParentWords.Select(y => y.ChildWordId).Contains(x.WordId)) .OrderByDescending(x => x.DailyCount).Take(20).Select(x => new WordApiWordInfo() { Word = x.Word1, Slug = x.Slug, Image = x.Image, DailyCount = x.DailyCount.Value, WeeklyCount = x.WeeklyCount.Value, MonthlyCount = x.MonthlyCount.Value, YearlyCount = x.YearlyCount.Value, WordId = x.WordId }) .ToList(); return(View("Front", topDaily)); } }