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 }); }
/// <summary> /// Makes a field editable via the Page Editor. Use the Model property as the target item, e.g. model => 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); } }
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)); }
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)); }
/// <summary> /// Makes a field editable via the Page Editor. Use the Model property as the target item, e.g. model => 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); } }
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)); }
/// <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()); }