public void Read(PageHeaderSettings settings, IUnitOfWork unitOfWork = null) { IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork); try { string sql = _sqlManager.GetSql("Sql.ReadPageHeader.sql"); dbm.SetSQL(sql); dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId); dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId); dbm.ExecuteReader(); dbm.Read(); settings.PageTenantId = dbm.DataReaderValue("PageTenantId") == DBNull.Value ? null : (long?)dbm.DataReaderValue("PageTenantId"); settings.PageId = dbm.DataReaderValue("PageId") == DBNull.Value ? null : (long?)dbm.DataReaderValue("PageId"); settings.ShowName = (bool)dbm.DataReaderValue("ShowName"); settings.ShowDescription = (bool)dbm.DataReaderValue("ShowDescription"); settings.ShowImage = (bool)dbm.DataReaderValue("ShowImage"); settings.ShowCreated = (bool)dbm.DataReaderValue("ShowCreated"); settings.ShowUpdated = (bool)dbm.DataReaderValue("ShowUpdated"); settings.ShowOccurred = (bool)dbm.DataReaderValue("ShowOccurred"); settings.ShowBreadcrumbs = (bool)dbm.DataReaderValue("ShowBreadcrumbs"); } finally { if (unitOfWork == null) { dbm.Dispose(); } } }
public void Create(PageHeaderSettings settings, IUnitOfWork unitOfWork = null) { IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork); try { string sql = _sqlManager.GetSql("Sql.CreatePageHeader.sql"); dbm.SetSQL(sql); dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId); dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId); dbm.AddParameter("@PageTenantId", FieldType.BigInt, settings.PageTenantId ?? (object)DBNull.Value); dbm.AddParameter("@PageId", FieldType.BigInt, settings.PageId ?? (object)DBNull.Value); dbm.AddParameter("@ShowName", FieldType.Bit, settings.ShowName); dbm.AddParameter("@ShowDescription", FieldType.Bit, settings.ShowDescription); dbm.AddParameter("@ShowImage", FieldType.Bit, settings.ShowImage); dbm.AddParameter("@ShowCreated", FieldType.Bit, settings.ShowCreated); dbm.AddParameter("@ShowUpdated", FieldType.Bit, settings.ShowUpdated); dbm.AddParameter("@ShowOccurred", FieldType.Bit, settings.ShowOccurred); dbm.AddParameter("@ShowBreadcrumbs", FieldType.Bit, settings.ShowBreadcrumbs); dbm.ExecuteNonQuery(); } finally { if (unitOfWork == null) { dbm.Dispose(); } } }
public FormResult PostForm(Form form) { try { // Check permissions _authorizationService.AuthorizeUserForFunction(Functions.UpdatePageElements); // Get page and element identifiers string[] parts = form.Context.Split('|'); long pageId = Convert.ToInt64(parts[0]); long elementId = Convert.ToInt64(parts[1]); // Get website identifier long tenantId = _authenticationService.TenantId; // Get page header page string pageValue = ((SelectListField <string>)form.Fields["page"]).Value; long? pageHeaderPageId = pageValue == string.Empty ? null : (long?)Convert.ToInt64(((SelectListField <string>)form.Fields["page"]).Value); long? pageHeaderTenantId = pageHeaderPageId.HasValue ? (long?)tenantId : null; // Get the page header element service IAdvancedElementService elementService = (IAdvancedElementService)_elementFactory.GetElementService(FormId); // Get updated page header settings PageHeaderSettings pageHeaderSettings = (PageHeaderSettings)elementService.New(_authenticationService.TenantId); pageHeaderSettings.ElementId = elementId; pageHeaderSettings.PageId = pageHeaderPageId; pageHeaderSettings.PageTenantId = pageHeaderTenantId; pageHeaderSettings.ShowCreated = ((BooleanField)form.Fields["showCreated"]).Value; pageHeaderSettings.ShowDescription = ((BooleanField)form.Fields["showDescription"]).Value; pageHeaderSettings.ShowImage = ((BooleanField)form.Fields["showImage"]).Value; pageHeaderSettings.ShowName = ((BooleanField)form.Fields["showName"]).Value; pageHeaderSettings.ShowOccurred = ((BooleanField)form.Fields["showOccurred"]).Value; pageHeaderSettings.ShowUpdated = ((BooleanField)form.Fields["showUpdated"]).Value; pageHeaderSettings.ShowBreadcrumbs = ((BooleanField)form.Fields["showBreadcrumbs"]).Value; // Perform the update elementService.Update(pageHeaderSettings); // Return form result with no errors return(_formHelperService.GetFormResult()); } catch (ValidationErrorException ex) { // Return form result containing errors return(_formHelperService.GetFormResultWithValidationErrors(ex.Errors)); } catch (Exception) { // Return form result containing unexpected error message return(_formHelperService.GetFormResultWithErrorMessage(ApplicationResource.UnexpectedErrorMessage)); } }
public IElementContent GetContent(IElementSettings settings, IPageContext pageContext, IUnitOfWork unitOfWork = null) { // Construct element content PageHeaderContent pageHeaderContent = new PageHeaderContent(); pageHeaderContent.PartialViewName = "PageHeader"; // Populate element content page according to element settings PageHeaderSettings pageHeaderSettings = (PageHeaderSettings)settings; if ((pageHeaderSettings.PageId == null) || (pageHeaderSettings.PageId.Value == pageContext.Page.PageId)) { pageHeaderContent.Page = pageContext.Page; } else { pageHeaderContent.Page = _pageService.Read(pageHeaderSettings.PageTenantId.Value, pageHeaderSettings.PageId.Value, unitOfWork); } // Populate element content breadcrumb navigation according to element settings if (pageHeaderSettings.ShowBreadcrumbs) { Page pageHierarchy = null; if ((pageHeaderSettings.PageId == null) || (pageHeaderSettings.PageId.Value == pageContext.Page.PageId)) { pageHierarchy = pageContext.Hierarchy; } else { pageHierarchy = _pageService.ReadHierarchy(pageHeaderSettings.PageTenantId.Value, pageHeaderSettings.PageId.Value, unitOfWork); } pageHeaderContent.PageHierarchyPageLinks = GetPageHierarchyPageLinks(pageHierarchy); } // Return resulting element content return(pageHeaderContent); }
public Form GetForm(string context) { // Check permissions _authorizationService.AuthorizeUserForFunction(Functions.UpdatePageElements); // Get page and element identifiers string[] parts = context.Split('|'); long pageId = Convert.ToInt64(parts[0]); long elementId = Convert.ToInt64(parts[1]); // Get current page header settings Guid elementTypeId = FormId; IAdvancedElementService elementService = (IAdvancedElementService)_elementFactory.GetElementService(elementTypeId); PageHeaderSettings pageHeaderSettings = (PageHeaderSettings)elementService.New(_authenticationService.TenantId); pageHeaderSettings.ElementId = elementId; elementService.Read(pageHeaderSettings); // Get possible pages for page header long tenantId = _authenticationService.TenantId; ISearchParameters searchParameters = new SearchParameters { PageIndex = 0, PageSize = 1000 }; // TODO: Need way to return all pages, not have some max bound upper limit ISearchResult <Page> folderResult = _pageService.List(tenantId, searchParameters, null, PageSortBy.Name, true, true, PageType.Folder, false); ISearchResult <Page> documentResult = _pageService.List(tenantId, searchParameters, null, PageSortBy.Name, true, true, PageType.Document, false); IEnumerable <Page> foldersAndDocuments = folderResult.Items.Concat(documentResult.Items).OrderBy(p => p.Name); // Construct form Form form = new Form { Fields = new Dictionary <string, IFormField>(), Id = FormId.ToString(), Context = context }; form.Fields.Add("showName", new BooleanField { Name = "showName", Label = ElementResource.PageHeaderShowNameLabel, Value = pageHeaderSettings.ShowName }); form.Fields.Add("showDescription", new BooleanField { Name = "showDescription", Label = ElementResource.PageHeaderShowDescriptionLabel, Value = pageHeaderSettings.ShowDescription }); form.Fields.Add("showImage", new BooleanField { Name = "showImage", Label = ElementResource.PageHeaderShowImageLabel, Value = pageHeaderSettings.ShowImage }); form.Fields.Add("showCreated", new BooleanField { Name = "showCreated", Label = ElementResource.PageHeaderShowCreatedLabel, Value = pageHeaderSettings.ShowCreated }); form.Fields.Add("showUpdated", new BooleanField { Name = "showUpdated", Label = ElementResource.PageHeaderShowUpdatedLabel, Value = pageHeaderSettings.ShowUpdated }); form.Fields.Add("showOccurred", new BooleanField { Name = "showOccurred", Label = ElementResource.PageHeaderShowOccurredLabel, Value = pageHeaderSettings.ShowUpdated }); form.Fields.Add("showBreadcrumbs", new BooleanField { Name = "showBreadcrumbs", Label = ElementResource.PageHeaderShowBreadcrumbsLabel, Value = pageHeaderSettings.ShowBreadcrumbs }); form.Fields.Add("page", new SelectListField <string> { Name = "page", Label = ElementResource.PageHeaderPageLabel, Value = pageHeaderSettings.PageId == null ? string.Empty : pageHeaderSettings.PageId.Value.ToString(), Items = new List <ListFieldItem <string> > { new ListFieldItem <string> { Name = ElementResource.PageDefaultOption, Value = string.Empty } } }); foreach (Page page in foldersAndDocuments) { ((SelectListField <string>)form.Fields["page"]).Items.Add(new ListFieldItem <string> { Name = page.Name, Value = page.PageId.ToString() }); } form.SubmitLabel = ElementResource.PageHeaderButtonLabel; // Return result return(form); }