public SectionNode GetByUrlName(string urlName) { Ensure.ArgumentIsNotNullOrEmpty(urlName, "urlName"); return(_unitOfWork.Context.GetDbSet <SectionNode>() .Include(x => x.SectionTemplate) .Include(x => x.PageNodes) .FirstOrDefault(x => x.UrlName.ToLower() == urlName.ToLower())); }
public PageNode CreateForSection(int sectionId, int pageTemplateId, string displayName, string urlName, bool commit = true) { Ensure.ArgumentIsNotNullOrEmpty(displayName, "displayName"); Ensure.ArgumentIsNotNullOrEmpty(urlName, "urlName"); var pageNodeDbSet = _unitOfWork.Context.GetDbSet <PageNode>(); var parentSectionNode = _unitOfWork.Context.GetDbSet <SectionNode>() .Include(x => x.SectionTemplate.PageTemplates.Select(y => y.PropertyTemplates)) .Include(x => x.PageNodes) .FirstOrDefault(x => x.Id == sectionId); //TODO: should use service instead of UnitOfWork directly, but issues with Ninject circular dependencies if (parentSectionNode == null) { throw new ArgumentException(string.Format(Messages.SectionNodeNotFound, sectionId)); } var formattedUrlName = CmsUrlHelper.FormatUrlName(!string.IsNullOrEmpty(urlName) ? urlName : displayName); if (parentSectionNode.PageNodes != null && parentSectionNode.PageNodes.Any(s => s.UrlName == formattedUrlName)) { throw new ArgumentException(string.Format(Messages.PageNodeUrlNameMustBeUniqueWithinSection, formattedUrlName, sectionId)); } var pageTemplate = parentSectionNode.SectionTemplate.PageTemplates.FirstOrDefault(x => x.Id == pageTemplateId); //TODO: should use service instead of UnitOfWork directly, but issues with Ninject circular dependencies if (pageTemplate == null) { throw new ArgumentException(string.Format(Messages.PageTemplateNotFoundForSectionTemplate, pageTemplateId, parentSectionNode.SectionTemplateId)); } var pageNode = pageNodeDbSet.Create(); pageNode.ParentSectionNode = parentSectionNode; pageNode.PageTemplate = pageTemplate; pageNode.DisplayName = displayName; pageNode.UrlName = formattedUrlName; pageNode.Order = parentSectionNode.PageNodes == null || !parentSectionNode.PageNodes.Any() ? CmsConstants.FirstOrderNumber : parentSectionNode.PageNodes.Count(); pageNode.IsPublished = false; pageNode.CreatedOn = DateTime.UtcNow; pageNode.ModifiedOn = pageNode.CreatedOn; pageNodeDbSet.Add(pageNode); AddPropertiesForPageTemplatesPropertyTemplates(pageTemplate, pageNode); if (commit) { _unitOfWork.Commit(); } return(pageNode); }
public PageNode CreateForPage(int pageId, int pageTemplateId, string displayName, string urlName) { Ensure.ArgumentIsNotNullOrEmpty(displayName, "displayName"); Ensure.ArgumentIsNotNullOrEmpty(urlName, "urlName"); var pageNodeDbSet = _unitOfWork.Context.GetDbSet <PageNode>(); var pageNodes = pageNodeDbSet .Include(x => x.PageNodes) .Include(x => x.PageTemplate.PageTemplates); var parentPage = pageNodes.FirstOrDefault(x => x.Id == pageId); if (parentPage == null) { throw new ArgumentException(string.Format(Messages.PageNodeNotFound, pageId)); } var pageTemplate = parentPage.PageTemplate.PageTemplates.FirstOrDefault(x => x.Id == pageTemplateId); if (pageTemplate == null) { throw new ArgumentException(string.Format(Messages.PageTemplateNotFoundForPageTemplate, pageTemplateId, parentPage.PageTemplateId)); } var formattedUrlName = CmsUrlHelper.FormatUrlName(!string.IsNullOrEmpty(urlName) ? urlName : displayName); if (parentPage.PageNodes != null && parentPage.PageNodes.Any(s => s.UrlName == formattedUrlName)) { throw new ArgumentException(string.Format(Messages.PageNodeUrlNameMustBeUniqueWithinPage, formattedUrlName, pageId)); } var pageNode = pageNodeDbSet.Create(); pageNode.ParentPageNode = parentPage; pageNode.PageTemplate = pageTemplate; pageNode.DisplayName = displayName; pageNode.UrlName = formattedUrlName; pageNode.Order = parentPage.PageNodes == null || !parentPage.PageNodes.Any() ? CmsConstants.FirstOrderNumber : parentPage.PageNodes.Count(); pageNode.IsPublished = false; pageNode.CreatedOn = DateTime.UtcNow; pageNode.ModifiedOn = pageNode.CreatedOn; pageNodeDbSet.Add(pageNode); AddPropertiesForPageTemplatesPropertyTemplates(pageTemplate, pageNode); _unitOfWork.Commit(); return(pageNode); }
public static PageNode GetActionPageNode(IEnumerable <PageNode> pageNodes, string urlName) { Ensure.ArgumentIsNotNull(pageNodes, "nodes"); Ensure.ArgumentIsNotNullOrEmpty(urlName, "urlName"); //if the action name is index use the first page for this section, otherwise find the page by action name var pageNode = urlName.ToLower() == "index" ? pageNodes.FirstOrDefault(x => x.Order == CmsConstants.FirstOrderNumber) : pageNodes.FirstOrDefault(x => x.UrlName == urlName.ToLower()); if (pageNode == null) { throw new ArgumentException(string.Format("No page with the url name {0} found.", urlName.ToLower())); } return(pageNode); }
public SectionNode CreateSectionNode(int sectionTemplateId, string displayName, string urlName, bool commit = true) { Ensure.ArgumentIsNotNullOrEmpty(displayName, "displayName"); Ensure.ArgumentIsNotNullOrEmpty(urlName, "urlName"); var sectionNodeDbSet = _unitOfWork.Context.GetDbSet <SectionNode>(); var orderedSectionNodes = sectionNodeDbSet.OrderBy(x => x.Order); var formattedUrlName = CmsUrlHelper.FormatUrlName(!string.IsNullOrEmpty(urlName) ? urlName : displayName); if (sectionNodeDbSet.Any(s => s.UrlName == formattedUrlName)) { throw new ArgumentException(string.Format(Messages.SectionNodeUrlNameMustBeUnique, formattedUrlName)); } var sectionTemplate = _sectionTemplateService.GetById(sectionTemplateId); if (sectionTemplate == null) { throw new ArgumentException(string.Format(Messages.SectionTemplateNotFound, sectionTemplateId)); } var section = sectionNodeDbSet.Create(); section.SectionTemplateId = sectionTemplate.Id; section.DisplayName = displayName; section.UrlName = formattedUrlName; section.Order = !orderedSectionNodes.Any() ? CmsConstants.FirstOrderNumber : orderedSectionNodes.Count(); section.IsPublished = false; section.CreatedOn = DateTime.UtcNow; section.ModifiedOn = section.CreatedOn; section.InTrash = false; sectionNodeDbSet.Add(section); if (commit) { _unitOfWork.Commit(); } return(section); }