Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
 public static List<Classes.Post> GetAllPostsViews()
 {
     var dc = new RNManagementContext();
     var posts = (from xx in dc.Posts
                  select new
                  {
                      xx.CurrentMonthlyViews,
                      xx.PostId,
                      xx.TotalViews,
                      xx.DisabledAutoPosting,
                      xx.DisablePaymentsForPost,
                      xx.Feed
                  }).ToList();
     List<Classes.Post> postss = new List<Classes.Post>();
     for (int i = 0; i < posts.Count; i++)
     {
         Classes.Post p = new Classes.Post();
         p.TotalMonthlyViews = posts[i].CurrentMonthlyViews;
         p.Id = posts[i].PostId;
         p.TotalViews = posts[i].TotalViews;
         p.DisabledAutoPosting = posts[i].DisabledAutoPosting;
         p.DisablePaymentsForPost = posts[i].DisablePaymentsForPost;
         if (posts[i].Feed != null)
         {
             p.FromFeed = true;
             p.FeedName = posts[i].Feed.NameOfSite;
             p.FeedUrl = posts[i].Feed.UrlOfSite;
         }
         postss.Add(p);
     }
     return postss;
 }
Exemplo n.º 3
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;
        }
Exemplo n.º 4
0
        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();

        }
Exemplo n.º 5
0
        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 MonthlyStatementsFactory GetPostsThatHadViews()
        {
            var dc = new RNManagementContext();
            PostsToPay = (from xx in dc.Posts
                          where xx.CurrentMonthlyViews > 0
                          select new Posts.Classes.Post
                          {
                              Id = xx.PostId,
                              TotalMonthlyViews = xx.CurrentMonthlyViews,
                              TotalViews = xx.TotalViews,
                              DisablePaymentsForPost = xx.DisablePaymentsForPost
                          }).ToList();

            return this;
        }
        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;
        }
Exemplo n.º 8
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;
        }
Exemplo n.º 9
0
        public RSSFeedItem PullFeed(long id)
        {
            try
            {
                var dc = new RNManagementContext();
                var feeds = (from xx in dc.RssFeeds
                             where xx.RssId == id
                             select new RSSFeedItem
                             {
                                 MainUrl = xx.UrlOfSite,
                                 NameOfOrganization = xx.NameOfSite,
                                 Created = xx.Created,
                                 FeedId = xx.RssId,
                                 LastChecked = xx.LastCheck,
                                 TotalPostsPulled = xx.TotalPostsImported,
                                 RSSUrl = xx.UrlOfRss,
                                 InitialImageUrl = xx.InitialImageUrl,
                                 MainImageUrl = xx.MainImageUrl,
                                 CanNotScanFeed = xx.CanNotScanFeed,
                                 AuthorUserId = xx.UserIdToAssignPostsTo,
                                 Categories = (from yy in xx.InitialCategories
                                               select new RSSFeedCategory
                                               {
                                                   CategoryId = yy.CategoryId,
                                                   CategoryRNId = yy.CategoryRNId
                                               }),
                                 Tags = (from yy in xx.InitialTags
                                         select new RSSFeedTag
                                         {
                                             TagName = yy.TagName,
                                             TagId = yy.TagId
                                         })

                             }).FirstOrDefault();

                if (feeds.AuthorUserId != new Guid())
                    feeds.AuthorUserName = Membership.GetUser(feeds.AuthorUserId).UserName;
                return feeds;
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, GetType());
            }
            return new RSSFeedItem();

        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        public static Fund GetCurrentFundsInformation(Guid userId)
        {
            Fund f = new Fund();

            var dc = new RNManagementContext();
            var funds = dc.Funds.Where(x => x.UserId == userId).FirstOrDefault();
            if (funds == null)
            {
                f.ActiveInUserAccount = 0.00;
                f.AmountToWithdraw = 0.00;
                f.TotalPaidToUser = 0.00;
            }
            else
            {
                f.ActiveInUserAccount = funds.ActiveInUserAccount;
                f.TotalPaidToUser = funds.TotalPaidToUser;
                f.BitCoinId = funds.BitCoinId;
                f.PaypalAddress = funds.PaypalAddress;
            }
            f.UserId = userId;

            return f;
        }
 public List<Statement> GetLatestStatements(int page, int count)
 {
     var dc = new RNManagementContext();
     return (from xx in dc.MonthlyStatements
             select new Statement
             {
                 StatementDateTime = xx.StatementDateTime,
                 StatementId = xx.StatementId,
                 TotalPageViews = xx.TotalPageViews,
                 TotalProfitMade = xx.TotalProfitMade,
                 TotalWritersPaid = xx.TotalWritersPaid,
                 TotalWritersPayoutProfit = xx.TotalWritersPayoutProfit
             }).Skip(count * page).Take(count).ToList();
 }
 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;
 }
Exemplo n.º 14
0
        public List<RSSFeedItem> PullAllFeeds(int take, int page)
        {
            try
            {
                var dc = new RNManagementContext();
                var feeds = (from xx in dc.RssFeeds
                             where xx.IsRemoved == false
                             select new RSSFeedItem
                             {
                                 Created = xx.Created,
                                 FeedId = xx.RssId,
                                 LastChecked = xx.LastCheck,
                                 TotalPostsPulled = xx.TotalPostsImported,
                                 RSSUrl = xx.UrlOfRss,
                                 NameOfOrganization = xx.NameOfSite,
                                 MainUrl = xx.UrlOfSite,
                                 InitialImageUrl = xx.InitialImageUrl,
                                 MainImageUrl = xx.MainImageUrl,
                                 CanNotScanFeed = xx.CanNotScanFeed,
                                 AuthorUserId = xx.UserIdToAssignPostsTo,
                                 Categories = (from yy in xx.InitialCategories
                                               select new RSSFeedCategory
                                               {
                                                   CategoryId = yy.CategoryId,
                                                   CategoryRNId = yy.CategoryRNId
                                               }),
                                 Tags = (from yy in xx.InitialTags
                                         select new RSSFeedTag
                                         {
                                             TagName = yy.TagName,
                                             TagId = yy.TagId
                                         })

                             }).OrderBy(x => x.NameOfOrganization).Skip(take * page).Take(take).ToList();

                for (int i = 0; i < feeds.Count; i++)
                {
                    if (feeds[i].AuthorUserId != new Guid())
                        feeds[i].AuthorUserName = Membership.GetUser(feeds[i].AuthorUserId).UserName;
                }
                return feeds;
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, GetType());
            }
            return new List<RSSFeedItem>();

        }
Exemplo n.º 15
0
        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;
        }
Exemplo n.º 16
0
        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;
        }
Exemplo n.º 17
0
        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;

        }
Exemplo n.º 18
0
        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 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;
        }
Exemplo n.º 20
0
        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;

        }