Beispiel #1
0
        public MediatorResponse <RecommendedPagesViewModel> CreateRecommendedPagesViewModel()
        {
            var dataSource = _recommendedService.GetRecommendedPages();

            if (dataSource == null)
            {
                return(_mediatorService.GetMediatorResponse <RecommendedPagesViewModel>(Constants.MediatorCodes.RecommendedPagesResponse.DataSourceError, message: Constants.Logging.Error.DataSourceError));
            }

            var renderingParameters = _recommendedService.GetRecommendedPagesRenderingParameters();

            if (renderingParameters == null)
            {
                return(_mediatorService.GetMediatorResponse <RecommendedPagesViewModel>(Constants.MediatorCodes.RecommendedPagesResponse.RenderingParamError, message: Constants.Logging.Error.RenderingParametersError));
            }

            var viewModel = new RecommendedPagesViewModel
            {
                Title = new HtmlString(_glassHtml.Editable(dataSource, i => i.Title, new { EnclosingTag = "h1" })),
                Cards = dataSource.Cards != null && dataSource.Cards.Any()
                    ? dataSource.Cards.Select(MapRecommendedItemToRecommendedCardViewModel).ToList()
                    : new List <RecommendedCardViewModel>(),
                CssClass = renderingParameters.DisplayType?.CssClass,

                IsExperienceEditor = _recommendedService.IsExperienceEditor
            };

            return(_mediatorService.GetMediatorResponse(Constants.MediatorCodes.RecommendedPagesResponse.Ok, viewModel));
        }
 public BlogDetailViewModel ConvertTo(IBlog blog, bool isFeaturedArticle = false)
 {
     return(new BlogDetailViewModel
     {
         Title = new HtmlString(_glassHtml.Editable(blog, item => item.Title)),
         Intro = new HtmlString(_glassHtml.Editable(blog, item => item.Intro)),
         Description = new HtmlString(_glassHtml.Editable(blog, item => item.Description)),
         BlogImage = new HtmlString(_glassHtml.RenderImage(blog, item => item.HeroImage)),
         BlogCreated = blog.BlogCreated
     });
 }
 public HeroViewModel CreateHeroViewModel(IHero heroItemDataSource, bool isExperienceEditor)
 {
     return(new HeroViewModel
     {
         HeroImages = heroItemDataSource.HeroImages,
         HeroTitle = new HtmlString(_glassHtml.Editable(heroItemDataSource, i => i.HeroTitle,
                                                        new { EnclosingTag = "h2" })),
         HeroBody = new HtmlString(_glassHtml.Editable(heroItemDataSource, i => i.HeroBody, new { EnclosingTag = "div" })),
         IsExperienceEditor = isExperienceEditor
     });
 }
Beispiel #4
0
        /// <summary>
        /// Makes a field editable via the Page Editor. Use the Model property as the target item, e.g. model =&gt; model.Title where Title is field name.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="glassHtml">The glass HTML.</param>
        /// <param name="model">The model.</param>
        /// <param name="field">The field.</param>
        /// <param name="standardOutput">The standard output.</param>
        /// <param name="parameters">The parameters.</param>
        /// <returns>System.String.</returns>
        /// <exception cref="System.NullReferenceException">
        /// No field set
        /// or
        /// No standardoutput set
        /// or
        /// No model set
        /// </exception>
        public static string Editable <T>(IGlassHtml glassHtml, T model, Expression <Func <T, object> > field, Expression <Func <T, string> > standardOutput, AbstractParameters parameters)
        {
            if (field == null)
            {
                throw new NullReferenceException("No field set");
            }

            if (standardOutput == null)
            {
                throw new NullReferenceException("No standardoutput set");
            }

            if (model == null)
            {
                throw new NullReferenceException("No model set");
            }

            try
            {
                var result = glassHtml.Editable <T>(model, field, standardOutput, parameters);
                return(result);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Beispiel #5
0
        public ViewResult HeroSlider()
        {
            var viewModel = new HeroSliderViewModel();

            if (!String.IsNullOrEmpty(_contextWrapper.Datasource))
            {
                var contentItem = _mediaContentService.GetHeroSliderContent(_contextWrapper.Datasource);
                foreach (var slide in contentItem?.Slides)
                {
                    viewModel.HeroImages.Add(new HeroSliderImageViewModel()
                    {
                        Image = new HtmlString(_glassHtml.Editable <IHeroSliderSlide>(slide, i => i.Image))
                    });
                }
                var firstItem = viewModel.HeroImages.FirstOrDefault();
                firstItem.IsActive   = true;
                viewModel.ParentGuid = contentItem.Id.ToString();
            }

            var parameterValue = _contextWrapper.GetParameterValue("Slide Interval in Milliseconds");

            int interval = 0;

            if (int.TryParse(parameterValue, out interval))
            {
                viewModel.SlideInterval = interval;
            }

            viewModel.IsInExperienceEditorMode = _contextWrapper.IsExperienceEditor;

            return(View(viewModel));
        }
Beispiel #6
0
        public MediatorResponse <HeroViewModel> CreateHeroViewModel()
        {
            var heroItemDataSource = _heroService.GetHeroItems();

            if (heroItemDataSource == null)
            {
                return(_mediatorService.GetMediatorResponse <HeroViewModel>(MediatorCodes.HeroResponse.DataSourceError));
            }

            var viewModel = new HeroViewModel
            {
                HeroImages = heroItemDataSource.HeroImages,
                HeroTitle  = new HtmlString(_glassHtml.Editable(heroItemDataSource, i => i.HeroTitle,
                                                                new { EnclosingTag = "h2" })),
                IsExperienceEditor = _heroService.IsExperienceEditor
            };

            return(_mediatorService.GetMediatorResponse(MediatorCodes.HeroResponse.Ok, viewModel));
        }
Beispiel #7
0
        /// <summary>
        /// Makes a field editable via the Page Editor. Use the Model property as the target item, e.g. model =&gt; model.Title where Title is field name.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="glassHtml">The glass HTML.</param>
        /// <param name="model">The model.</param>
        /// <param name="field">The field.</param>
        /// <returns>System.String.</returns>
        /// <exception cref="System.NullReferenceException">
        /// No field set
        /// or
        /// No model set
        /// </exception>
        public static string Editable <T>(IGlassHtml glassHtml, T model, Expression <Func <T, object> > field)
        {
            if (field == null)
            {
                throw new NullReferenceException("No field set");
            }

            if (model == null)
            {
                throw new NullReferenceException("No model set");
            }

            try
            {
                var result = glassHtml.Editable <T>(model, field);
                return(result);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Beispiel #8
0
 public BlogViewModel ConvertTo(IBlog blog, bool isFeaturedArticle)
 {
     return(new BlogViewModel
     {
         BlogId = blog.Id.ToString(),
         Title = new HtmlString(_glassHtml.Editable(blog, item => item.Title)),
         Intro = new HtmlString(_glassHtml.Editable(blog, item => item.Intro)),
         Description = new HtmlString(_glassHtml.Editable(blog, item => item.Description)),
         BlogImage = isFeaturedArticle ? new HtmlString(_glassHtml.RenderImage(blog, item => item.FeatureImage, new { @class = Constants.BlogImageClassName })) : new HtmlString(_glassHtml.RenderImage(blog, item => item.LandingBoxImage, new { @class = Constants.BlogImageWithFluidClassName })),
         BlogCreated = blog.BlogCreated,
         AuthorFirstName = blog.Author != null ? new HtmlString(_glassHtml.Editable(blog, item => item.Author.FirstName)) : null,
         AuthorLastName = blog.Author != null ? new HtmlString(_glassHtml.Editable(blog, item => item.Author.LastName)) : null,
         AuthorImage = blog.Author != null ? new HtmlString(_glassHtml.RenderImage(blog, item => item.Author.Image, new { @class = isFeaturedArticle ? Constants.AuthorImageClassName : Constants.ImageFluidClassName })) : null,
         AuthorDescription = blog.Author != null ? new HtmlString(_glassHtml.Editable(blog, item => item.Author.AuthorSummary)) : null,
         BlogUrl = blog.Url,
         CommentCount = _commentService.GetCommentsCount(blog.Id.ToString())
     });
 }
 public HackViewModel CreateHeroViewModel(IHack hackItemDataSource, bool isExperienceEditor)
 {
     return(new HackViewModel
     {
         HackImage = hackItemDataSource.HackImage,
         HackTitle = new HtmlString(_glassHtml.Editable(hackItemDataSource, i => i.HackTitle,
                                                        new { EnclosingTag = "h2" })),
         HackBody = new HtmlString(_glassHtml.Editable(hackItemDataSource, i => i.HackBody,
                                                       new { EnclosingTag = "div" })),
         TeamTitle = new HtmlString(_glassHtml.Editable(hackItemDataSource, i => i.TeamTitle,
                                                        new { EnclosingTag = "h2" })),
         TeamCountry = new HtmlString(_glassHtml.Editable(hackItemDataSource, i => i.TeamCountry,
                                                          new { EnclosingTag = "p" })),
         TeamCity = new HtmlString(_glassHtml.Editable(hackItemDataSource, i => i.TeamCity,
                                                       new { EnclosingTag = "p" })),
         TeamDetails = new HtmlString(_glassHtml.Editable(hackItemDataSource, i => i.TeamDetails,
                                                          new { EnclosingTag = "div" })),
         IsExperienceEditor = isExperienceEditor
     });
 }
 /// <summary>
 /// Editables the specified target.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="target">The target.</param>
 /// <param name="field">The field.</param>
 /// <param name="parameters">The parameters.</param>
 /// <returns>RawString.</returns>
 public RawString Editable <T>(T target, Expression <Func <T, object> > field, object parameters = null)
 {
     return(_glassHtml.Editable(target, field, parameters).RawString());
 }
        public HtmlString BuildHtmlString <TModel>(TModel contentItem, Expression <Func <TModel, object> > field) where TModel : IContentBase
        {
            var newString = _glassHtml.Editable(contentItem, field);

            return(new HtmlString(newString));
        }
Beispiel #12
0
 /// <summary>
 /// Editables the specified target.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="target">The target.</param>
 /// <param name="field">The field.</param>
 /// <returns>RawString.</returns>
 public RawString Editable <T>(T target, Expression <Func <T, object> > field)
 {
     return(_glassHtml.Editable(target, field).RawString());
 }