/// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        public GuideStepViewModel BuildModel()
        {
            var model = new GuideStepViewModel()
            {
                GuideUrl    = new Uri(_content.Parent.Url, UriKind.RelativeOrAbsolute),
                GuideTitle  = _content.Parent.Name,
                StepContent = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(_content.GetPropertyValue <string>("content_Content")))
            };

            model.Metadata.IsPartOfUrl = _content.Parent.UrlAbsolute();

            var relatedLinksGroups = new RelatedLinksModelBuilder().OrganiseAsHeadingsAndSections(_relatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(_content, "relatedLinks_Content"));

            foreach (var linkGroup in relatedLinksGroups)
            {
                model.RelatedLinksGroups.Add(linkGroup);
            }

            model.Steps = new List <GuideNavigationLink>(_content.Siblings <IPublishedContent>()
                                                         .Where(sibling => sibling.ContentType == _content.ContentType)
                                                         .Select(sibling => new GuideNavigationLink()
            {
                Text          = sibling.Name,
                Url           = new Uri(sibling.Url, UriKind.Relative),
                IsCurrentPage = (sibling.Id == _content.Id)
            }));


            var partnerImages = _content.GetPropertyValue <IEnumerable <IPublishedContent> >("partnerImages_Content");

            foreach (var imageData in partnerImages)
            {
                var image = new Image()
                {
                    AlternativeText = imageData.Name,
                    ImageUrl        = new Uri(imageData.Url, UriKind.Relative),
                    Width           = imageData.GetPropertyValue <int>("umbracoWidth"),
                    Height          = imageData.GetPropertyValue <int>("umbracoHeight")
                };
                model.PartnerImages.Add(image);
            }

            return(model);
        }
        /// <summary>
        /// Builds the model.
        /// </summary>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public TaskViewModel BuildModel()
        {
            var model = new TaskViewModel
            {
                LeadingText     = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(_umbracoContent.GetPropertyValue <string>("leadingText_Content"))),
                StartPageUrl    = _elibraryLinkConverter.RewriteElibraryUrl(_mediaUrlTransformer.TransformMediaUrl(new Uri(_umbracoContent.GetPropertyValue <string>("startPageUrl_Content"), UriKind.RelativeOrAbsolute))),
                StartButtonText = _umbracoContent.GetPropertyValue <string>("startButtonText_Content"),
                Subheading1     = _umbracoContent.GetPropertyValue <string>("subheading1_Content"),
                Content1        = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(_umbracoContent.GetPropertyValue <string>("content1_Content"))),
                Subheading2     = _umbracoContent.GetPropertyValue <string>("subheading2_Content"),
                Content2        = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(_umbracoContent.GetPropertyValue <string>("content2_Content"))),
                Subheading3     = _umbracoContent.GetPropertyValue <string>("subheading3_Content"),
                Content3        = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(_umbracoContent.GetPropertyValue <string>("content3_Content"))),
                Subheading4     = _umbracoContent.GetPropertyValue <string>("subheading4_Content"),
                Content4        = new HtmlString(_mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(_umbracoContent.GetPropertyValue <string>("content4_Content")))
            };

            var relatedLinksGroups = new RelatedLinksModelBuilder().OrganiseAsHeadingsAndSections(_relatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(_umbracoContent, "relatedLinks_Content"));

            foreach (var linkGroup in relatedLinksGroups)
            {
                model.RelatedLinksGroups.Add(linkGroup);
            }

            var partnerImages = _umbracoContent.GetPropertyValue <IEnumerable <IPublishedContent> >("partnerImages_Content");

            foreach (var imageData in partnerImages)
            {
                var image = new Image()
                {
                    AlternativeText = imageData.Name,
                    ImageUrl        = _mediaUrlTransformer.TransformMediaUrl(new Uri(imageData.Url, UriKind.Relative)),
                    Width           = imageData.GetPropertyValue <int>("umbracoWidth"),
                    Height          = imageData.GetPropertyValue <int>("umbracoHeight")
                };
                model.PartnerImages.Add(image);
            }

            return(model);
        }