public ActionResult MyAccountMenu(MyAccountPageType id)
        {
            var referenceSettings = _settingsService.GetSiteSettings <ReferencePageSettings>();
            var layoutsettings    = _settingsService.GetSiteSettings <LayoutSettings>();

            if (referenceSettings == null || layoutsettings == null)
            {
                return(new EmptyResult());
            }

            var model = new MyAccountNavigationViewModel
            {
                CurrentPageType    = MyAccountPageType.Link,
                MenuItemCollection = new LinkItemCollection()
            };

            var menuItems = layoutsettings.MyAccountCmsMenu;

            if (menuItems == null)
            {
                return(PartialView("_ProfileSidebar", model));
            }

            menuItems = menuItems.CreateWritableClone();

            model.MenuItemCollection.AddRange(menuItems);

            return(PartialView("_ProfileSidebar", model));
        }
Example #2
0
        public ActionResult MyAccountMenu(MyAccountPageType id)
        {
            var referenceSettings = _settingsService.GetSiteSettings <ReferencePageSettings>();
            var layoutsettings    = _settingsService.GetSiteSettings <LayoutSettings>();

            if (referenceSettings == null || layoutsettings == null)
            {
                return(new EmptyResult());
            }

            var selectedSubNav        = _cookieService.Get(Constant.Fields.SelectedNavOrganization);
            var organization          = _organizationService.GetCurrentFoundationOrganization();
            var canSeeOrganizationNav = _customerService.CanSeeOrganizationNav();

            var model = new MyAccountNavigationViewModel
            {
                Organization        = canSeeOrganizationNav ? _organizationService.GetOrganizationModel(organization) : null,
                CurrentOrganization = canSeeOrganizationNav ? !string.IsNullOrEmpty(selectedSubNav) ?
                                      _organizationService.GetOrganizationModel(_organizationService.GetSubFoundationOrganizationById(selectedSubNav)) :
                                      _organizationService.GetOrganizationModel(organization) : null,
                CurrentPageType     = id,
                OrganizationPage    = referenceSettings.OrganizationMainPage,
                SubOrganizationPage = referenceSettings.SubOrganizationPage,
                MenuItemCollection  = new LinkItemCollection()
            };

            var menuItems = layoutsettings.MyAccountMenu;

            if (menuItems == null)
            {
                return(PartialView("_ProfileSidebar", model));
            }
            var wishlist = _contentLoader.Get <WishListPage>(referenceSettings.WishlistPage);

            menuItems = menuItems.CreateWritableClone();

            if (model.Organization != null)
            {
                if (wishlist != null)
                {
                    var url  = wishlist.LinkURL.Contains("?") ? wishlist.LinkURL.Split('?').First() : wishlist.LinkURL;
                    var item = menuItems.FirstOrDefault(x => x.Href.Substring(1).Equals(url));
                    if (item != null)
                    {
                        menuItems.Remove(item);
                    }
                }
                menuItems.Add(new LinkItem
                {
                    Href = _urlResolver.GetUrl(referenceSettings.QuickOrderPage),
                    Text = _localizationService.GetString("/Dashboard/Labels/QuickOrder", "Quick Order")
                });
            }
            else if (organization != null)
            {
                if (wishlist != null)
                {
                    var url  = wishlist.LinkURL.Contains("?") ? wishlist.LinkURL.Split('?').First() : wishlist.LinkURL;
                    var item = menuItems.FirstOrDefault(x => x.Href.Substring(1).Equals(url));
                    if (item != null)
                    {
                        item.Text = _localizationService.GetString("/Dashboard/Labels/OrderPad", "Order Pad");
                    }
                }
            }

            model.MenuItemCollection.AddRange(menuItems);

            return(PartialView("_ProfileSidebar", model));
        }
        public ActionResult MyAccountMenu(MyAccountPageType id)
        {
            var startPage = _contentLoader.Get <DemoHomePage>(ContentReference.StartPage);

            if (startPage == null)
            {
                return(new EmptyResult());
            }

            var selectedSubNav        = _cookieService.Get(Constant.Fields.SelectedNavSuborganization);
            var organization          = _organizationService.GetCurrentFoundationOrganization();
            var canSeeOrganizationNav = _customerService.CanSeeOrganizationNav();

            var model = new MyAccountNavigationViewModel
            {
                Organization        = canSeeOrganizationNav ? _organizationService.GetOrganizationModel(organization) : null,
                CurrentOrganization = canSeeOrganizationNav ? !string.IsNullOrEmpty(selectedSubNav) ?
                                      _organizationService.GetOrganizationModel(_organizationService.GetSubFoundationOrganizationById(selectedSubNav)) :
                                      _organizationService.GetOrganizationModel(organization) : null,
                CurrentPageType     = id,
                OrganizationPage    = startPage.OrganizationMainPage,
                SubOrganizationPage = startPage.SubOrganizationPage,
                MenuItemCollection  = new LinkItemCollection()
            };

            var menuItems = startPage.ShowCommerceHeaderComponents ? startPage.MyAccountCommerceMenu : startPage.MyAccountCmsMenu;

            if (menuItems == null)
            {
                return(PartialView("_ProfileSidebar", model));
            }
            var wishlist = _contentLoader.Get <WishListPage>(startPage.WishlistPage);

            menuItems = menuItems.CreateWritableClone();

            if (model.Organization != null)
            {
                if (wishlist != null)
                {
                    var url  = wishlist.LinkURL.Contains("?") ? wishlist.LinkURL.Split('?').First() : wishlist.LinkURL;
                    var item = menuItems.FirstOrDefault(x => x.Href.Substring(1).Equals(url));
                    if (item != null)
                    {
                        menuItems.Remove(item);
                    }
                }
                menuItems.Add(new LinkItem
                {
                    Href = _urlResolver.GetUrl(startPage.QuickOrderPage),
                    Text = _localizationService.GetString("/Dashboard/Labels/QuickOrder", "Quick Order")
                });
            }
            else if (organization != null)
            {
                if (wishlist != null)
                {
                    var url  = wishlist.LinkURL.Contains("?") ? wishlist.LinkURL.Split('?').First() : wishlist.LinkURL;
                    var item = menuItems.FirstOrDefault(x => x.Href.Substring(1).Equals(url));
                    if (item != null)
                    {
                        item.Text = _localizationService.GetString("/Dashboard/Labels/OrderPad", "Order Pad");
                    }
                }
            }

            model.MenuItemCollection.AddRange(menuItems);

            if (id == MyAccountPageType.Organization)
            {
                return(PartialView("_ProfileSidebar", model));
            }

            var currentContent = _pageRouteHelper.Page;

            foreach (var menuItem in menuItems)
            {
                if (menuItem.Href != null)
                {
                    var content = UrlResolver.Current.Route(new UrlBuilder(menuItem.Href));
                    if (content == null)
                    {
                        continue;
                    }
                    if (currentContent.ContentLink == content.ContentLink)
                    {
                        model.CurrentPageText = menuItem.Text;
                    }
                }
            }

            return(PartialView("_ProfileSidebar", model));
        }