コード例 #1
0
ファイル: ads.aspx.cs プロジェクト: dovanduy/titan
    protected void LoadAds()
    {
        Form.Action = Request.RawUrl;

        List <PtcAdvert> AvailableAdList;

        CreatedCustomCategories = new List <int>();

        Member user = null;

        if (Member.IsLogged)
        {
            user = Member.Current;
            int temporaryAdvertId = 0;
            if (AppSettings.PtcAdverts.BlockPtcAdvertsAfterMissingPointer &&
                Request.Params.Get("__EVENTARGUMENT5") != null && Int32.TryParse(Request.Params.Get("__EVENTARGUMENT5"), out temporaryAdvertId))
            {
                // User missed the anti-robot button 3 times
                // Blocking this particualr ad for him
                List <int> av = user.AdsViewed;
                av.Add(temporaryAdvertId); // Blocking = adding to watched
                user.AdsViewed = av;
                user.Save();

                NotificationManager.RefreshWithMember(NotificationType.NewAds, user);
            }

            AvailableAdList = PtcAdvert.GetActiveAdsForUser(user);
        }
        else
        {
            AvailableAdList = PtcAdvert.GetAllActiveAds();
        }

        if (AvailableAdList.Count == 0)
        {
            MenuMultiView.Visible     = false;
            NoPTCpanelWrapper.Visible = true;
            NoPTCpanel.Visible        = true;
            NoPTCpanel.Text           = U6003.NOPTC;
        }
        else
        {
            if (!string.IsNullOrWhiteSpace(Request.Params.Get("__EVENTARGUMENT")))
            {
                string agrument = Request.Params.Get("__EVENTARGUMENT");
                if (PTCSercurityManager.IsPTCAdvertFound(agrument, AvailableAdList))
                {
                    PTCSercurityManager.Release();
                }
            }

            //Sort by favorite?
            if (Member.IsLogged)
            {
                if (SortBy1.SelectedValue == "Favorite")
                {
                    var favorites = FavoriteAd.GetUserFavorites(Member.CurrentId, FavoriteAdType.PTC);
                    AvailableAdList = AvailableAdList.OrderByDescending(i => favorites.Contains(i.Id)).ToList();
                }
                else if (SortBy1.SelectedValue == "Voted")
                {
                    var favorites = FavoriteAd.GetUserFavorites(Member.CurrentId, FavoriteAdType.PTC);
                    AvailableAdList = AvailableAdList.OrderByDescending(i => i.CaptchaYesAnswers - i.CaptchaNoAnswers).ToList();
                }
            }

            //Display proper ads to the Member
            try
            {
                //Lets get the proper ads to the member
                foreach (PtcAdvert Ad in AvailableAdList)
                {
                    bool IsSearch = !string.IsNullOrWhiteSpace(SearchTextBox.Text);

                    if (!IsSearch || (IsSearch && IsSearchRequirementsMeet(Ad, SearchTextBox.Text)))
                    {
                        if (AppSettings.PtcAdverts.PTCCategoryPolicy == AppSettings.PTCCategoryPolicy.Custom)
                        {
                            //Display Custom Categories
                            CustomCategoriesPlaceHolder.Visible = true;
                            if (!CreatedCustomCategories.Contains(Ad.CategoryId))
                            {
                                CreatedCustomCategories.Add(Ad.CategoryId);
                            }

                            CustomCategoriesPlaceHolder.Controls.Add(GetAdHTML(Ad, user));
                        }
                        else
                        {
                            if (string.IsNullOrEmpty(Ad.Description) && Ad.IsStarredAd == false)
                            {
                                SmallAdsLiteral.Controls.Add(GetAdHTML(Ad, user, ""));
                            }
                            else
                            {
                                AdsLiteral.Controls.Add(GetAdHTML(Ad, user, ""));
                            }
                        }
                    }
                }
                if (AppSettings.PtcAdverts.PTCCategoryPolicy == AppSettings.PTCCategoryPolicy.Custom)
                {
                    foreach (var categoryId in CreatedCustomCategories)
                    {
                        LoadCustomCategoryButton(categoryId);
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                throw ex;
            }
        }
    }
コード例 #2
0
ファイル: NotificationManager.cs プロジェクト: dovanduy/titan
    private static int RefreshAndGetValue(NotificationType type, Member user = null)
    {
        if (!Member.IsLogged)
        {
            return(0);
        }

        if (user == null)
        {
            user = Member.CurrentInCache;
        }

        switch (type)
        {
        case NotificationType.NewAds:

            List <PtcAdvert> AvailableAdList = PtcAdvert.GetActiveAdsForUser(user);
            int newAdsCounter = 0;

            foreach (PtcAdvert Ad in AvailableAdList)
            {
                if (!user.AdsViewed.Contains(Ad.Id))
                {
                    newAdsCounter++;
                }
            }
            return(newAdsCounter);

        case NotificationType.NewMessages:
            return(ConversationMessage.GetNumberOfUnreadMessages(Member.CurrentId));

        case NotificationType.NewDirectReferrals:

            using (var bridge = ParserPool.Acquire(Database.Client))
            {
                return((int)bridge.Instance.ExecuteRawCommandScalar("SELECT COUNT (*) FROM Users WHERE IsSpotted = 0 AND ReferrerId = "
                                                                    + Member.CurrentId));
            }

        case NotificationType.NewAchievements:

            return(user.UnspottedAchievements);

        case NotificationType.NewCPAOffers:
            //CPAOFfers
            //User is already loaded
            var OM = new OffersManager(user);
            return(OM.AllActiveOffersForMember.Count);

        case NotificationType.UnreadSupportTickets:

            return((int)TableHelper.SelectScalar(String.Format("SELECT COUNT(*) FROM SupportTickets WHERE IsRead = 0 AND FromUsername = '******'",
                                                               Member.CurrentName)));


        case NotificationType.NewAdPacksAds:

            List <AdPacksAdvert> AdPacksAdList = AdPackManager.GetAdPacksAdvertsForUsers(user.Membership.AdPackDailyRequiredClicks);
            int numberofAdsViewed = user.RSAPTCAdsViewed.Count();

            int adsRequiredToWatch = user.Membership.AdPackDailyRequiredClicks - numberofAdsViewed;

            if (adsRequiredToWatch <= 0)
            {
                return(0);
            }

            if (adsRequiredToWatch > AdPacksAdList.Count)
            {
                int adCount = 0;
                foreach (AdPacksAdvert ad in AdPacksAdList)
                {
                    if (!user.RSAPTCAdsViewed.Contains(ad.Id))
                    {
                        adCount++;
                    }
                }
                return(adCount);
            }
            return(adsRequiredToWatch);

        case NotificationType.UnassignedMatrixMembers:
            return(user.GetUnassignedMatrixMembersCount());

        case NotificationType.PendingRepresentativePaymentRequest:
            return(ConversationMessage.GetPendingRequestForRepresentativeCount(user.Id));

        default:
            return(0);
        }
    }