Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web.Mvc;
- using ServiceStack.Text;
- using SitefinityWebApp.Custom.DynamicContent.Managers;
- using SitefinityWebApp.Mvc.Models;
- using Telerik.Sitefinity.DynamicModules;
- using Telerik.Sitefinity.Frontend.Mvc.Helpers;
- using Telerik.Sitefinity.Frontend.Mvc.Models;
- using Telerik.Sitefinity.Frontend.Navigation.Mvc.Models;
- using Telerik.Sitefinity.GenericContent.Model;
- using Telerik.Sitefinity.Libraries.Model;
- using Telerik.Sitefinity.Mvc;
- using Telerik.Sitefinity.RelatedData;
- using Telerik.Sitefinity.Utilities.TypeConverters;
- using Telerik.Sitefinity.Web;
- namespace SitefinityWebApp.Mvc.Controllers
- {
- [ControllerToolboxItem(Name = "Footer", Title = "Footer", SectionName = "Custom Widgets", CssClass = "sfNavigationIcn sfMvcIcn")]
- public class FooterController : Controller
- {
- public string SerializedSelectedNavigationPages { get; set; }
- public string SerializedSelectedNavigationExternalPages { get; set; }
- public string MailingListBigText { get; set; }
- public string MailingListSmallText { get; set; }
- public string MailingListButtonText { get; set; }
- public Guid? MailingListPageId { get; set; }
- public string RssLink { get; set; }
- public string FacebookLink { get; set; }
- public string TwitterLink { get; set; }
- public string YoutubeLink { get; set; }
- public string InstagramLink { get; set; }
- public string SponsorType => SponsorManager.GetManager().DynamicTypeFullName;
- public string SelectedSponsorIds { get; set; }
- public ActionResult Index()
- {
- var navItems = GetNavItems();
- var mailingListPage = MailingListPageId.HasValue ? new NodeViewModel(null, HyperLinkHelpers.GetFullPageUrl(MailingListPageId.Value), "_self", false, false) : null;
- var sponsorViewModels = GetSponsorViewModels();
- var model = new FooterViewModel(navItems, MailingListBigText, MailingListSmallText, MailingListButtonText, mailingListPage, RssLink, FacebookLink, TwitterLink, YoutubeLink, InstagramLink,
- sponsorViewModels);
- return View("Default", model);
- }
- private List<ItemViewModel> GetSponsorViewModels()
- {
- var sponsorGuids = JsonSerializer.DeserializeFromString<IList<Guid>>(SelectedSponsorIds);
- var type = TypeResolutionService.ResolveType(SponsorType);
- var sponsorDataItems = DynamicModuleManager.GetManager().GetDataItems(type).Where(x => x.Status == ContentLifecycleStatus.Live && x.Visible && sponsorGuids.Contains(x.Id));
- var sponsorViewModels = new List<ItemViewModel>();
- foreach (var spi in sponsorDataItems)
- {
- spi.GetRelatedItems<Image>("Image");
- sponsorViewModels.Add(new ItemViewModel(spi));
- }
- return sponsorViewModels;
- }
- private List<NodeViewModel> GetNavItems()
- {
- var navigationPages = JsonSerializer.DeserializeFromString<SelectedPageModel[]>(SerializedSelectedNavigationPages);
- var navItems = new List<NodeViewModel>();
- if (navigationPages != null)
- {
- var smp = SiteMapBase.GetSiteMapProvider(SiteMapBase.DefaultSiteMapProviderName);
- foreach (var page in navigationPages)
- {
- if (page.IsExternal)
- {
- var nvm = new NodeViewModel(null, page.Url, "_self", false, false) {Title = page.TitlesPath};
- navItems.Add(nvm);
- }
- else
- {
- var siteMapNode = smp.FindSiteMapNodeFromKey(page.Id.ToString("D"));
- // ReSharper disable once PossibleNullReferenceException
- var nvm = new NodeViewModel(null, siteMapNode.Url, "_self", false, false) {Title = siteMapNode.Title};
- navItems.Add(nvm);
- }
- }
- }
- return navItems;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement