Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // get settings that impact menu tabs
            User user = AbleContext.Current.User;
            StoreSettingsManager settings = AbleContext.Current.Store.Settings;
            bool isRegistered             = !user.IsAnonymous;

            // construct links
            NameValueCollection menuLinks = new NameValueCollection();

            if (isRegistered)
            {
                menuLinks.Add("Orders", "MyAccount.aspx");
                if (SubscriptionDataSource.CountForUser(user.Id) > 0)
                {
                    menuLinks.Add("Subscriptions", "MySubscriptions.aspx");
                }

                if (OrderItemDigitalGoodDataSource.CountForUser(user.Id) > 0 || DigitalGoodDataSource.FindByUserGroupsCount(user.Id) > 0)
                {
                    menuLinks.Add("Digital Goods", "MyDigitalGoods.aspx");
                }
            }

            if (settings.WishlistsEnabled)
            {
                menuLinks.Add("Wishlist", "MyWishlist.aspx");
            }

            if (isRegistered)
            {
                menuLinks.Add("Profile", "MyCredentials.aspx");
                if (settings.EnablePaymentProfilesStorage && !AbleContext.Current.User.IsAnonymousOrGuest)
                {
                    menuLinks.Add("Payment Types", "PaymentTypes.aspx");
                }
                menuLinks.Add("Address Book", "MyAddressBook.aspx");

                if (settings.ProductReviewEnabled != CommerceBuilder.Users.UserAuthFilter.None)
                {
                    menuLinks.Add("Product Reviews", "MyProductReviews.aspx");
                }
            }

            int affiliateCount = UserDataSource.LoadUserAffiliateAccounts(user.Id).Count;

            if (affiliateCount > 0 || settings.AffiliateAllowSelfSignup)
            {
                menuLinks.Add("Affiliate Program", "MyAffiliateAccount.aspx");
            }

            // determine active page
            string activePage = Request.Url.Segments[Request.Url.Segments.Length - 1].ToLowerInvariant();

            // build menu
            StringBuilder menu = new StringBuilder();

            menu.AppendLine("<div class=\"tabstrip\">");
            menu.AppendLine("<ul>");
            foreach (string key in menuLinks.AllKeys)
            {
                if (IsActive(activePage, menuLinks[key].ToLowerInvariant()))
                {
                    menu.Append("<li class=\"active\">");
                }
                else
                {
                    menu.Append("<li>");
                }
                menu.AppendLine("<a href=\"" + Page.ResolveUrl("~/Members/" + menuLinks[key]) + "\">" + key + "</a></li>");
            }
            menu.AppendLine("</ul>");
            menu.AppendLine("</div>");
            MenuContent.Text = menu.ToString();
        }