public static bool AddPostForFeed(Guid id, long feedId) { try { var dc = new RNManagementContext(); var p = dc.Posts.Where(x => x.PostId == id).FirstOrDefault(); if (p != null) { p.Feed = dc.RssFeeds.Where(x => x.RssId == feedId).FirstOrDefault(); } else { p = new Post(); p.PostId = id; p.Feed = dc.RssFeeds.Where(x => x.RssId == feedId).FirstOrDefault(); dc.Posts.Add(p); } int c = dc.SaveChanges(); return c > 0; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return false; }
public MonthlyStatementsFactory ZeroOutMonthlyViews() { var dc = new RNManagementContext(); foreach (var p in PostsForAll) { var post = dc.Posts.Where(x => x.PostId == p.Id).FirstOrDefault(); if (post != null) { post.CurrentMonthlyViews = 0; } } int c = dc.SaveChanges(); return this; }
public static bool UpdateAmounts(Guid userId, double totalJustPaid) { var dc = new RNManagementContext(); var funds = dc.Funds.Where(x => x.UserId == userId).FirstOrDefault(); if (funds != null) { funds.ActiveInUserAccount -= totalJustPaid; funds.TotalPaidToUser += totalJustPaid; } int c = dc.SaveChanges(); return c > 0; }
public static Guid GetRandomPostToSocialize(List<Guid> published, DateTime dateAfter) { var dc = new RNManagementContext(); var key = (from xx in dc.Posts where xx.Created > dateAfter where xx.DisabledAutoPosting == false where published.Contains(xx.PostId) select xx).ToList(); var post = key.OrderBy(x => x.LastTimePostedToFacebook).FirstOrDefault(); post.LastTimePostedToFacebook = DateTime.UtcNow; post.TotalFacebookPosts += 1; int c = dc.SaveChanges(); return post.PostId; }
public static bool SaveCurrentPaypalBitcoinInformation(Fund fund) { var dc = new RNManagementContext(); var funds = dc.Funds.Where(x => x.UserId == fund.UserId).FirstOrDefault(); if (funds == null) { FundsForWriter f = new FundsForWriter(); f.BitCoinId = fund.BitCoinId; f.PaypalAddress = fund.PaypalAddress; f.UserId = fund.UserId; dc.Funds.Add(f); } else { funds.PaypalAddress = fund.PaypalAddress; funds.BitCoinId = fund.BitCoinId; } int c = dc.SaveChanges(); return c > 0; }
public MonthlyStatementsFactory CalculateAndSavePayouts() { double authorsCut = Statement.TotalProfitMade * PAYOUTPERCENTAGETOAUTHORS; //removes SpoiledTechies Posts cause he doesn't want to get paid. //removes posts that aren't allowed to pay, mainly sponsors. var allPosts = PostsToPay.Where(x => x.DisablePaymentsForPost == false).Where(x => x.AuthorUserId == ServerConfig.DEFAULT_JAMIES_USER_ID || x.AuthorUserId == ServerConfig.DEFAULT_SCOTTS_USER_ID || x.AuthorUserId == ServerConfig.DEFAULT_ADMIN_USER_ID).ToList(); foreach (var post in allPosts) { PostsToPay.Remove(post); } //gets the total views of all the posts in this month. double totalViews = PostsToPay.Sum(x => x.TotalMonthlyViews); //caculates the post percentages. foreach (var post in PostsToPay) { post.PercentageOfTotalViews = (double)post.TotalMonthlyViews / totalViews; } TotalPayments = (from p in PostsToPay group p by p.AuthorUserId into g select new TotalPayment { UserId = g.Key, TotalPercentageBeingPaid = g.Sum(x => x.PercentageOfTotalViews), TotalPageViewsThisMonth = g.Sum(x => x.TotalMonthlyViews) }).ToList(); var dc = new RNManagementContext(); MonthlyStatement newMonth = new MonthlyStatement(); newMonth.StatementDateTime = DateTime.UtcNow; newMonth.TotalPageViews = (long)totalViews; newMonth.TotalProfitMade = Statement.TotalProfitMade; newMonth.TotalWritersPaid = TotalPayments.Count; newMonth.TotalWritersPayoutProfit = authorsCut; dc.MonthlyStatements.Add(newMonth); foreach (var group in TotalPayments) { //add the funds to the account. var fund = dc.Funds.Where(x => x.UserId == group.UserId).FirstOrDefault(); group.TotalAddedToAccount = (group.TotalPercentageBeingPaid * authorsCut); if (fund != null) { fund.ActiveInUserAccount += group.TotalAddedToAccount; group.TotalActiveInAccount = fund.ActiveInUserAccount; } else { FundsForWriter f = new FundsForWriter(); f.ActiveInUserAccount = group.TotalAddedToAccount; f.UserId = group.UserId; dc.Funds.Add(f); group.TotalActiveInAccount = f.ActiveInUserAccount; } } int c = dc.SaveChanges(); return this; }
public bool AddNewStatement(Statement statement) { var dc = new RNManagementContext(); MonthlyStatement s = new MonthlyStatement(); s.StatementDateTime = DateTime.UtcNow; s.TotalPageViews = statement.TotalPageViews; s.TotalProfitMade = statement.TotalProfitMade; s.TotalWritersPaid = statement.TotalWritersPaid; s.TotalWritersPayoutProfit = statement.TotalWritersPayoutProfit; dc.MonthlyStatements.Add(s); int c = dc.SaveChanges(); return c > 0; }
public static bool AddViewToPost(Guid id) { try { var dc = new RNManagementContext(); var p = dc.Posts.Where(x => x.PostId == id).FirstOrDefault(); if (p != null) { p.TotalViews += 1; p.CurrentMonthlyViews += 1; } else { p = new Post(); p.PostId = id; p.CurrentMonthlyViews = 1; p.TotalViews = 1; dc.Posts.Add(p); } int c = dc.SaveChanges(); return c > 0; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return false; }
public static bool SavePostToDb(Guid id, bool isAutoSharingDisabled, bool disablePaymentsForPost) { try { var dc = new RNManagementContext(); var p = dc.Posts.Where(x => x.PostId == id).FirstOrDefault(); if (p != null) { p.DisabledAutoPosting = isAutoSharingDisabled; p.DisablePaymentsForPost = disablePaymentsForPost; p.LastTimePostedToFacebook = DateTime.UtcNow; p.TotalFacebookPosts += 1; } else { p = new Post(); p.PostId = id; p.DisabledAutoPosting = isAutoSharingDisabled; p.DisablePaymentsForPost = disablePaymentsForPost; p.LastTimePostedToFacebook = DateTime.UtcNow; p.TotalFacebookPosts = 1; dc.Posts.Add(p); } int c = dc.SaveChanges(); return c > 0; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return false; }
public static Guid RecordNewFBShare(Guid postId) { var dc = new RNManagementContext(); var key = (from xx in dc.Posts where xx.PostId == postId select xx).FirstOrDefault(); key.LastTimePostedToFacebook = DateTime.UtcNow; key.TotalFacebookPosts += 1; int c = dc.SaveChanges(); return key.PostId; }
public RSSFeedItem UpdateFeed(RSSFeedItem item) { try { var dc = new RNManagementContext(); var feeds = (from xx in dc.RssFeeds where xx.RssId == item.FeedId select xx).FirstOrDefault(); feeds.UrlOfRss = item.RSSUrl; feeds.NameOfSite = item.NameOfOrganization; feeds.UrlOfSite = item.MainUrl; feeds.InitialImageUrl = item.InitialImageUrl; feeds.MainImageUrl = item.MainImageUrl; feeds.CanNotScanFeed = item.CanNotScanFeed; if (!String.IsNullOrEmpty(item.AuthorUserName)) feeds.UserIdToAssignPostsTo = (Guid)Membership.GetUser(item.AuthorUserName).ProviderUserKey; else feeds.UserIdToAssignPostsTo = new Guid(); var catsInDb = feeds.InitialCategories.ToList(); var tagsInDb = feeds.InitialTags.ToList(); foreach (var cat in catsInDb) { var c = item.Categories.Where(x => x.CategoryRNId == cat.CategoryRNId).FirstOrDefault(); if (c == null) feeds.InitialCategories.Remove(cat); } foreach (var cat in item.Categories) { var c = feeds.InitialCategories.Where(x => x.CategoryRNId == cat.CategoryRNId).FirstOrDefault(); if (c == null) feeds.InitialCategories.Add(new DataModels.RN.RSS.RSSFeedCategory() { CategoryRNId = cat.CategoryRNId }); } foreach (var cat in tagsInDb) { var c = item.Tags.Where(x => x.TagName == cat.TagName).FirstOrDefault(); if (c == null) feeds.InitialTags.Remove(cat); } foreach (var cat in item.Tags) { var c = feeds.InitialTags.Where(x => x.TagName == cat.TagName).FirstOrDefault(); if (c == null) feeds.InitialTags.Add(new DataModels.RN.RSS.RSSFeedTag() { TagName = cat.TagName }); } int count = dc.SaveChanges(); return item; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, GetType()); } return new RSSFeedItem(); }
public RSSFactory AddNewFeed(RSSFeedItem item) { try { var dc = new RNManagementContext(); var ff = dc.RssFeeds.Where(x => x.UrlOfRss == item.RSSUrl).FirstOrDefault(); if (ff == null) { RSSFeed feed = new RSSFeed(); feed.UrlOfRss = item.RSSUrl; feed.UrlOfSite = item.MainUrl; feed.NameOfSite = item.NameOfOrganization; feed.TotalPostsImported = 0; feed.LastCheck = DateTime.UtcNow.AddYears(-100); feed.Created = DateTime.UtcNow; feed.InitialImageUrl = item.InitialImageUrl; feed.MainImageUrl = item.MainImageUrl; feed.CanNotScanFeed = item.CanNotScanFeed; if (!String.IsNullOrEmpty(item.AuthorUserName)) feed.UserIdToAssignPostsTo = (Guid)Membership.GetUser(item.AuthorUserName).ProviderUserKey; foreach (var c in item.Categories) { DataModels.RN.RSS.RSSFeedCategory cat = new DataModels.RN.RSS.RSSFeedCategory(); cat.CategoryRNId = c.CategoryRNId; feed.InitialCategories.Add(cat); } foreach (var t in item.Tags) { DataModels.RN.RSS.RSSFeedTag tag = new DataModels.RN.RSS.RSSFeedTag(); tag.TagName = t.TagName; feed.InitialTags.Add(tag); } dc.RssFeeds.Add(feed); dc.SaveChanges(); } else ff.IsRemoved = false; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, GetType()); } return this; }
public bool FinishFeedPolling(long id, int count) { try { if (count > 0) { var dc = new RNManagementContext(); var feeds = (from xx in dc.RssFeeds where xx.RssId == id select xx).FirstOrDefault(); feeds.TotalPostsImported += count; feeds.LastCheck = DateTime.UtcNow; dc.SaveChanges(); } return true; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, GetType()); } return false; }
public bool RemoveFeed(long id) { try { var dc = new RNManagementContext(); var feeds = (from xx in dc.RssFeeds where xx.RssId == id select xx).FirstOrDefault(); feeds.IsRemoved = true; dc.SaveChanges(); return true; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, GetType()); } return false; }