/// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        public JobSearchResultsViewModel BuildModel()
        {
            var model = new JobSearchResultsViewModel()
            {
                JobsLogo = BuildImage("JobsLogo_Content"),
                HeaderBackgroundImageSmall  = BuildImage("HeaderBackgroundImage_Content"),
                HeaderBackgroundImageMedium = BuildImage("HeaderBackgroundImageMedium_Content"),
                HeaderBackgroundImageLarge  = BuildImage("HeaderBackgroundImageLarge_Content"),
                JobsHomePage    = BuildLinkToPage("JobsHomePage_Content"),
                JobAdvertPage   = BuildLinkToPage("JobDetailPage_Content"),
                LoginPage       = BuildLinkToPage("LoginPage_Content"),
                LoginUrl        = !string.IsNullOrEmpty(UmbracoContent.GetPropertyValue <string>("loginURL")) ? new Uri(UmbracoContent.GetPropertyValue <string>("loginURL"), UriKind.RelativeOrAbsolute) : null,
                JobsSearchPage  = BuildLinkToPage("JobsSearchPage_Content"),
                JobsPrivacyPage = BuildLinkToPage("JobsPrivacyPage_Content"),
                JobsSet         = ParseJobsSet("PublicOrRedeployment_Content")
            };

            var rss = BuildLinkToPage("JobsRssFeed_Content");

            if (rss != null)
            {
                model.Metadata.RssFeedTitle = rss.Text;
                model.Metadata.RssFeedUrl   = rss.Url.ToString();
            }

            return(model);
        }
        protected Image BuildImage(string alias)
        {
            var imageData = UmbracoContent.GetPropertyValue <IPublishedContent>(alias);

            if (imageData == null)
            {
                return(null);
            }
            return(BuildImageFromMediaItem(imageData));
        }
示例#3
0
        protected IList <Image> BuildImages(string alias)
        {
            var imagesData = UmbracoContent.GetPropertyValue <IEnumerable <IPublishedContent> >(alias);
            var images     = new List <Image>();

            foreach (var imageData in imagesData)
            {
                images.Add(BuildImageFromMediaItem(imageData));
            }
            return(images);
        }
        protected JobsSet ParseJobsSet(string fieldAlias)
        {
            var index = umbraco.library.GetPreValueAsString(UmbracoContent.GetPropertyValue <int>(fieldAlias));

            if (index == "Redeployment jobs")
            {
                return(JobsSet.RedeploymentJobs);
            }
            else
            {
                return(JobsSet.PublicJobs);
            }
        }
        protected string BuildJobsSearcherName(string fieldAlias)
        {
            var index = umbraco.library.GetPreValueAsString(UmbracoContent.GetPropertyValue <int>(fieldAlias));

            if (index == "Redeployment jobs")
            {
                return("RedeploymentJobsSearcher");
            }
            else
            {
                return("PublicJobsSearcher");
            }
        }
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        public JobsSearchViewModel BuildModel()
        {
            _model.JobsLogo = BuildImage("JobsLogo_Content");
            _model.HeaderBackgroundImageSmall  = BuildImage("HeaderBackgroundImage_Content");
            _model.HeaderBackgroundImageMedium = BuildImage("HeaderBackgroundImageMedium_Content");
            _model.HeaderBackgroundImageLarge  = BuildImage("HeaderBackgroundImageLarge_Content");
            _model.JobsHomePage      = BuildLinkToPage("JobsHomePage_Content");
            _model.LoginUrl          = !string.IsNullOrEmpty(UmbracoContent.GetPropertyValue <string>("loginURL")) ? new Uri(UmbracoContent.GetPropertyValue <string>("loginURL"), UriKind.RelativeOrAbsolute) : null;
            _model.SearchResultsPage = BuildLinkToPage("SearchResultsPage_Content");
            _model.JobsSet           = ParseJobsSet("PublicOrRedeployment_Content");

            return(_model);
        }
        protected HtmlLink BuildLinkToPage(string alias)
        {
            var linkedPage = UmbracoContent.GetPropertyValue <IPublishedContent>(alias);

            if (linkedPage != null)
            {
                return(new HtmlLink()
                {
                    Text = linkedPage.Name,
                    Url = new Uri(linkedPage.UrlAbsolute())
                });
            }
            return(null);
        }
示例#8
0
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        /// <exception cref="System.NotImplementedException"></exception>
        public JobsComponentViewModel BuildModel()
        {
            var model = new JobsComponentViewModel
            {
                JobsLogo     = BuildImage("JobsLogo_Content"),
                JobsHomePage = BuildLinkToPage("JobsHomePage_Content"),
                LoginPage    = BuildLinkToPage("LoginPage_Content"),
                HeaderBackgroundImageSmall  = BuildImage("HeaderBackgroundImage_Content"),
                HeaderBackgroundImageMedium = BuildImage("HeaderBackgroundImageMedium_Content"),
                HeaderBackgroundImageLarge  = BuildImage("HeaderBackgroundImageLarge_Content"),
                ScriptUrl             = new TalentLinkUrl(UmbracoContent.GetPropertyValue <string>("ScriptUrl_Content")),
                IsForm                = UmbracoContent.GetPropertyValue <bool>("IsForm_Content"),
                ContentBelowComponent = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(UmbracoContent.GetPropertyValue <string>("ContentBelow_Content")))
            };

            return(model);
        }
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        public JobAdvertViewModel BuildModel()
        {
            var model = new JobAdvertViewModel()
            {
                JobsLogo = BuildImage("JobsLogo_Content"),
                HeaderBackgroundImageSmall  = BuildImage("HeaderBackgroundImage_Content"),
                HeaderBackgroundImageMedium = BuildImage("HeaderBackgroundImageMedium_Content"),
                HeaderBackgroundImageLarge  = BuildImage("HeaderBackgroundImageLarge_Content"),
                JobsHomePage = BuildLinkToPage("JobsHomePage_Content"),
                LoginPage    = BuildLinkToPage("LoginPage_Content"),
                LoginUrl     = !string.IsNullOrEmpty(UmbracoContent.GetPropertyValue <string>("loginURL")) ? new Uri(UmbracoContent.GetPropertyValue <string>("loginURL"), UriKind.RelativeOrAbsolute) : null,
                SearchResultsPageForClosedJobs = BuildLinkToPage("SearchResultsPage_Content"),
                JobsSet = ParseJobsSet("PublicOrRedeployment_Content")
            };

            return(model);
        }
示例#10
0
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        /// <exception cref="System.NotImplementedException"></exception>
        public JobsHomeViewModel BuildModel()
        {
            var model = new JobsHomeViewModel
            {
                JobsLogo = BuildImage("JobsLogo_Content"),
                HeaderBackgroundImageSmall   = BuildImage("HeaderBackgroundImage_Content"),
                HeaderBackgroundImageMedium  = BuildImage("HeaderBackgroundImageMedium_Content"),
                HeaderBackgroundImageLarge   = BuildImage("HeaderBackgroundImageLarge_Content"),
                HeaderBackgroundImageCaption = UmbracoContent.GetPropertyValue <string>("HeaderBackgroundImageCaption_Content"),
                LoginPage  = BuildUri("LoginPage_Content"),
                LoginUrl   = !string.IsNullOrEmpty(UmbracoContent.GetPropertyValue <string>("loginURL")) ? new Uri(UmbracoContent.GetPropertyValue <string>("loginURL"), UriKind.RelativeOrAbsolute) : null,
                SearchPage = BuildUri("SearchPage_Content"),
                SearchResultsPageForHeader = BuildUri("SearchResultsPage_Content"),
                TileNavigation             = RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "TileNavigation_Content"),
                TileImages    = BuildImages("TileImages_Content"),
                CampaignImage = BuildImage("CampaignImage_Content"),
                CampaignPage  = BuildUri("CampaignPage_Content")
            };

            if (model.CampaignPage == null)
            {
                var campaignUrl = UmbracoContent.GetPropertyValue <string>("CampaignUrl_Content");
                if (!String.IsNullOrEmpty(campaignUrl))
                {
                    model.CampaignPage = new HtmlLink()
                    {
                        Url = new Uri(campaignUrl, UriKind.RelativeOrAbsolute)
                    };
                }
            }

            // Allow a hyphen to indicate that there's no text for the link, just an image
            foreach (var link in model.TileNavigation)
            {
                if (link.Text == "-")
                {
                    link.Text = String.Empty;
                }
            }

            return(model);
        }
        /// <summary>
        /// Gets the view model based on Umbraco properties.
        /// </summary>
        /// <returns></returns>
        public RightsOfWayDepositViewModel BuildModel()
        {
            var model = new RightsOfWayDepositViewModel();

            model.Reference = UmbracoContent.Name;

            for (var i = 1; i <= 5; i++)
            {
                var owner = UmbracoContent.GetPropertyValue <PersonName>($"Owner{i}_Content");
                if (owner != null)
                {
                    model.IndividualOwners.Add(owner);
                }

                var org = UmbracoContent.GetPropertyValue <string>($"OrganisationalOwner{i}_Content");
                if (!String.IsNullOrEmpty(org))
                {
                    model.OrganisationalOwners.Add(org);
                }

                var addressInfo = UmbracoContent.GetPropertyValue <AddressInfo>($"Location{((i > 1) ? i.ToString(CultureInfo.InvariantCulture) : String.Empty)}_Content");
                if (addressInfo != null && addressInfo.BS7666Address.HasAddress() && addressInfo.BS7666Address.ToString() != addressInfo.BS7666Address.AdministrativeArea)
                {
                    if (addressInfo.GeoCoordinate.Latitude == 0 && addressInfo.GeoCoordinate.Longitude == 0)
                    {
                        addressInfo.GeoCoordinate = null;
                    }
                    model.Addresses.Add(addressInfo);
                }
            }

            model.OrdnanceSurveyGridReference = UmbracoContent.GetPropertyValue <string>("GridReference_Content");

            model.DateDeposited       = UmbracoContent.GetPropertyValue <DateTime>("DateDeposited_Content");
            model.Metadata.DateIssued = model.DateDeposited;
            model.DateExpires         = UmbracoContent.GetPropertyValue <DateTime>("DateExpires_Content");

            var depositDocuments = UmbracoContent.GetPropertyValue <IEnumerable <IPublishedContent> >("DepositDocument_Content");

            if (depositDocuments != null)
            {
                foreach (var depositDocument in depositDocuments)
                {
                    model.DepositDocuments.Add(new HtmlLink()
                    {
                        Url  = new Uri(depositDocument.Url, UriKind.Relative),
                        Text = depositDocument.Name
                    });
                }
            }

            var parishes = UmbracoContent.GetPropertyValue <IEnumerable <string> >("Parish_Content");

            if (parishes != null)
            {
                foreach (var parish in parishes)
                {
                    model.Parishes.Add(parish);
                }
            }

            model.Description = UmbracoContent.GetPropertyValue <string>("pageDescription_Content");

            return(model);
        }
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        public HomePageViewModel BuildModel()
        {
            var model = new HomePageViewModel()
            {
                TopTasksTitle        = UmbracoContent.GetPropertyValue <string>("TopTasksTitle_Content"),
                NewsTitle            = UmbracoContent.GetPropertyValue <string>("NewsTitle_Content"),
                LibrariesTitle       = UmbracoContent.GetPropertyValue <string>("LibrariesTitle_Content"),
                RecyclingTitle       = UmbracoContent.GetPropertyValue <string>("RecyclingTitle_Content"),
                InvolvedTitle        = UmbracoContent.GetPropertyValue <string>("InvolvedTitle_Content"),
                JobsLogo             = BuildImage("JobsLogo_Content"),
                JobSearchResultsPage = BuildLinkToPage("JobSearchResultsPage_Content"),
                JobsHomePage         = BuildLinkToPage("JobsHomePage_Content")
            };

            var involvedRss = UmbracoContent.Children <IPublishedContent>()
                              .FirstOrDefault(child => child.ContentType.Alias == "HomePageItems" && child.Name.ToUpperInvariant().Contains("INVOLVED"));

            if (involvedRss != null)
            {
                model.InvolvedRssUrl = new Uri(involvedRss.UrlWithDomain());

                ((List <HomePageItemViewModel>)model.InvolvedItems).AddRange(
                    involvedRss.Children <IPublishedContent>()
                    .Where(child => child.ContentType.Alias == "HomePageItem")
                    .Take(5)
                    .Select(child => new HomePageItemViewModelFromUmbraco(child).BuildModel())
                    );
            }

            var newsRss = UmbracoContent.Children <IPublishedContent>()
                          .FirstOrDefault(child => child.ContentType.Alias == "HomePageItems" && child.Name.ToUpperInvariant().Contains("NEWS"));

            if (newsRss != null)
            {
                model.NewsRssUrl = new Uri(newsRss.UrlWithDomain());

                ((List <HomePageItemViewModel>)model.NewsItems).AddRange(
                    newsRss.Children <IPublishedContent>()
                    .Where(child => child.ContentType.Alias == "HomePageItem" && !String.IsNullOrEmpty(child.GetPropertyValue <string>("Image_Content")))
                    .Take(2)
                    .Select(child => new HomePageItemViewModelFromUmbraco(child).BuildModel())
                    );
            }

            var termDates = UmbracoContent.GetPropertyValue <IPublishedContent>("TermDatesData_Content");

            if (termDates != null && !String.IsNullOrEmpty(termDates.Url))
            {
                model.TermDatesDataUrl = new Uri(termDates.Url, UriKind.Relative);
            }

            ((List <HtmlLink>)model.TopTasksLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "TopTasksContent_Content"));
            ((List <HtmlLink>)model.ReportLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "ReportTab_Content"));
            ((List <HtmlLink>)model.ApplyLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "ApplyTab_Content"));
            ((List <HtmlLink>)model.PayLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "PayTab_Content"));
            ((List <HtmlLink>)model.SchoolLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "SchoolLinks_Content"));
            ((List <HtmlLink>)model.LibrariesContent).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "LibrariesContent_Content"));
            ((List <HtmlLink>)model.InvolvedLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "InvolvedLinks_Content"));

            return(model);
        }
        /// <summary>
        /// Gets the view model based on Umbraco properties.
        /// </summary>
        /// <returns></returns>
        public RightsOfWayModificationViewModel BuildModel()
        {
            var model = new RightsOfWayModificationViewModel
            {
                Reference                   = UmbracoContent.Name,
                NearestTownOrVillage        = UmbracoContent.GetPropertyValue <string>("nearestTownOrVillage"),
                DescriptionOfRoute          = UmbracoContent.GetPropertyValue <string>("pageDescription"),
                StatusClaimed               = UmbracoContent.GetPropertyValue <string>("statusClaimed"),
                OrdnanceSurveyGridReference = UmbracoContent.GetPropertyValue <string>("GridReference"),
                IndividualApplicant         = UmbracoContent.GetPropertyValue <PersonName>("nameOfApplicant"),
                OrganisationalApplicant     = UmbracoContent.GetPropertyValue <string>("nameOfApplicantOrganisation"),
                CouncilOfficerAssigned      = UmbracoContent.GetPropertyValue <PersonName>("councilOfficerAssigned"),
                ApplicationStatus           = UmbracoContent.GetPropertyValue <string>("applicationStatus"),
                Decision = UmbracoContent.GetPropertyValue <string>("decision")
            };

            for (var i = 1; i <= 5; i++)
            {
                var org = UmbracoContent.GetPropertyValue <string>($"OrganisationalOwner{i}");
                if (!String.IsNullOrEmpty(org))
                {
                    model.OrganisationalOwners.Add(org);
                }

                var addressInfo = UmbracoContent.GetPropertyValue <AddressInfo>($"Location{i}");
                if (addressInfo != null && addressInfo.BS7666Address.HasAddress() && addressInfo.BS7666Address.ToString() != addressInfo.BS7666Address.AdministrativeArea)
                {
                    if (addressInfo.GeoCoordinate.Latitude == 0 && addressInfo.GeoCoordinate.Longitude == 0)
                    {
                        addressInfo.GeoCoordinate = null;
                    }
                    model.Addresses.Add(addressInfo);
                }
            }


            model.DateReceived         = UmbracoContent.GetPropertyValue <DateTime>("DateReceived");
            model.Metadata.DateCreated = model.DateReceived;
            model.DateDetermined       = UmbracoContent.GetPropertyValue <DateTime>("DateDetermined");
            if (model.DateDetermined == DateTime.MinValue)
            {
                model.DateDetermined = null;
            }
            model.DateModificationOrderConfirmed = UmbracoContent.GetPropertyValue <DateTime>("orderConfirmedDate");
            if (model.DateModificationOrderConfirmed == DateTime.MinValue)
            {
                model.DateModificationOrderConfirmed = null;
            }

            var documents = UmbracoContent.GetPropertyValue <IEnumerable <IPublishedContent> >("Documents");

            if (documents != null)
            {
                foreach (var document in documents)
                {
                    model.ApplicationDocuments.Add(new HtmlLink()
                    {
                        Url  = new Uri(document.Url, UriKind.Relative),
                        Text = document.Name
                    });
                }
            }

            var parishes = UmbracoContent.GetPropertyValue <IEnumerable <string> >("Parish");

            if (parishes != null)
            {
                foreach (var parish in parishes)
                {
                    model.Parishes.Add(parish);
                }
            }

            return(model);
        }