private static HtmlContentWidget AddHtmlWidget(PagesApiContext pagesApi, string title, string html) { var name = string.Format("Default Better CMS {0}", title); var getRequest = new GetHtmlContentWidgetsRequest(e => e.Name == name); var widgets = pagesApi.GetHtmlContentWidgets(getRequest); if (widgets.Items.Count > 0) { return(widgets.Items[0]); } var createRequest = new CreateHtmlContentWidgetRequest { Name = name, Html = html }; return(pagesApi.CreateHtmlContentWidget(createRequest)); }
/// <summary> /// Creates the HTML content widget. /// </summary> /// <param name="request">The request.</param> /// <returns> /// Created widget entity /// </returns> /// <exception cref="CmsApiException"></exception> /// <exception cref="BetterCms.Core.Exceptions.Api.CmsApiException"></exception> public HtmlContentWidget CreateHtmlContentWidget(CreateHtmlContentWidgetRequest request) { ValidateRequest(request); try { UnitOfWork.BeginTransaction(); var htmlWidget = new HtmlContentWidget { Name = request.Name, Html = request.Html, CustomCss = request.Css, CustomJs = request.JavaScript, UseHtml = !string.IsNullOrWhiteSpace(request.Html), UseCustomCss = !string.IsNullOrWhiteSpace(request.Css), UseCustomJs = !string.IsNullOrWhiteSpace(request.JavaScript) }; if (request.CategoryId.HasValue && !request.CategoryId.Value.HasDefaultValue()) { htmlWidget.Category = Repository.AsProxy <Category>(request.CategoryId.Value); } var service = Resolve <IContentService>(); var widgetToSave = (HtmlContentWidget)service.SaveContentWithStatusUpdate(htmlWidget, ContentStatus.Published); Repository.Save(widgetToSave); UnitOfWork.Commit(); // Notify Events.OnWidgetCreated(widgetToSave); return(widgetToSave); } catch (Exception inner) { var message = string.Format("Failed to create HTML content widget."); Logger.Error(message, inner); throw new CmsApiException(message, inner); } }