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;
        }
        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.º 3
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;
        }
Exemplo n.º 4
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.º 5
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;
        }
        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;
 }
Exemplo n.º 8
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.º 9
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.º 10
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;
        }
Exemplo n.º 11
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.º 12
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.º 13
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.º 14
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;

        }