Example #1
0
        public ActionResult UpdatePageTemplates(PageTemplatesDto pageTemplatesDto)
        {
            TemplatesModule.UpdatePageTemplates(pageTemplatesDto);

            return(new JsonNetResult
            {
                Data = Json(new { Result = "Successfully updated Page Templates" })
            });
        }
        public PageTemplatesDto GetAllTemplatesForPageByTeamAndPageId(int teamId, int pageId)
        {
            var pageTemplateDto = new PageTemplatesDto();

            var templateList = new List <PageTemplateDto>();

            using (ConsoleRepository)
            {
                var pageTemplates = ConsoleRepository.Query <PageTemplate>(pt => pt.Template, pt => pt.TemplatedPage, pt => pt.Team)
                                    .Where(pt => pt.TemplatedPageId == pageId && pt.TeamId == teamId).ToList();

                var pageStructureTemplate = pageTemplates.FirstOrDefault(pt => pt.Template.IsPageStructureTemplate);

                if (pageStructureTemplate != null)
                {
                    pageTemplateDto.PageStructureTemplateId    = pageStructureTemplate.Template.Id;
                    pageTemplateDto.PageStructureTemplateTitle = pageStructureTemplate.Template.Title;
                    pageTemplateDto.PageStructureTemplateUrl   = pageStructureTemplate.Template.Url;

                    pageTemplates.Remove(pageStructureTemplate);
                    pageTemplates.ForEach(p => templateList.Add(new PageTemplateDto
                    {
                        TemplateId    = p.TemplateId,
                        TemplateTitle = p.Template.Title,
                        TemplateUrl   = p.Template.Url,
                        TemplateAfterRenderDomFunction = p.Template.AfterRenderDomFunction,
                        IsVisible             = p.IsVisible,
                        IsReadOnly            = p.IsReadOnly,
                        PageSectionId         = p.PageSectionId,
                        SendConnectionKeys    = p.SendConnectionKeys,
                        ReceiveConnectionKeys = p.ReceiveConnectionKeys,
                        Settings = p.Settings,
                    }));

                    pageTemplateDto.SectionTemplates = templateList;
                }
                else
                {
                    return(pageTemplateDto);
                }
            }

            return(pageTemplateDto);
        }
        public PageTemplatesDto GetPageTemplates(string templatedPageTitle)
        {
            var pageTemplateDto = new PageTemplatesDto();

            var user = WebSiteModuleManager.EnsureCurrentUser();
            var primaryTeamMembership =
                user.TeamMemberships.FirstOrDefault(t => t.PrimaryTeamMembership);

            if (primaryTeamMembership == null)
            {
                return(SetDefaultTemplateValues());
            }

            var templateList = new List <PageTemplateDto>();

            using (ConsoleRepository)
            {
                var page = ConsoleRepository.Query <TemplatedPage>().FirstOrDefault(tp => tp.PageTitle == templatedPageTitle);

                var pageTemplates = ConsoleRepository.Query <PageTemplate>(pt => pt.Template, pt => pt.TemplatedPage, pt => pt.Team)
                                    .Where(pt => pt.TemplatedPageId == page.Id && pt.TeamId == primaryTeamMembership.TeamId);

                var userPageTemplateSettings = ConsoleRepository.Query <UserPageTemplateSetting>()
                                               .Where(pt => pt.TemplatedPageId == page.Id && pt.TeamId == primaryTeamMembership.TeamId && pt.UserId == user.Id);

                var query = from s in pageTemplates
                            join upts in userPageTemplateSettings on new { s.TemplateId, s.PageSectionId } equals new { upts.TemplateId, upts.PageSectionId } into gj
                from subpet in gj.DefaultIfEmpty()
                select new PageTemplateDto()
                {
                    //Id = s.Id,
                    TemplateId      = s.TemplateId,
                    TeamId          = s.TeamId,
                    TemplatedPageId = s.TemplatedPageId,
                    TemplateTitle   = s.Template.Title,
                    TemplateUrl     = s.Template.Url,
                    TemplateAfterRenderDomFunction = s.Template.AfterRenderDomFunction,
                    IsVisible  = s.IsVisible,
                    IsReadOnly = s.IsReadOnly,
                    IsSiteStructureTemplate = s.Template.IsPageStructureTemplate,
                    PageSectionId           = s.PageSectionId,
                    SendConnectionKeys      = s.SendConnectionKeys,
                    ReceiveConnectionKeys   = s.ReceiveConnectionKeys,
                    Settings         = s.Settings,
                    PersonalSettings = subpet.Settings
                };


                var results = query.ToList();
                if (results == null || results.Count == 0)
                {
                    throw new Exception("Page Templates not found");
                }

                var pageStructureTemplate = results.FirstOrDefault(pt => pt.IsSiteStructureTemplate);

                if (pageStructureTemplate != null)
                {
                    pageTemplateDto.PageStructureTemplateId    = pageStructureTemplate.TemplateId;
                    pageTemplateDto.PageStructureTemplateTitle = pageStructureTemplate.TemplateTitle;
                    pageTemplateDto.PageStructureTemplateUrl   = pageStructureTemplate.TemplateUrl;

                    results.Remove(pageStructureTemplate);

                    pageTemplateDto.SectionTemplates = results;
                }
            }

            return(pageTemplateDto);
        }
        public void UpdatePageTemplates(PageTemplatesDto pageTemplatesDto)
        {
            using (ConsoleRepository)
            {
                var pageStructureTemplate = ConsoleRepository.Query <PageTemplate>(pt => pt.Template, pt => pt.TemplatedPage, pt => pt.Team)
                                            .FirstOrDefault(pt => pt.TemplatedPageId == pageTemplatesDto.PageId && pt.TeamId == pageTemplatesDto.TeamId && pt.Template.IsPageStructureTemplate);

                if (pageStructureTemplate != null)
                {
                    var newPageStructureTemplate =
                        ConsoleRepository.Query <Template>()
                        .FirstOrDefault(t => t.Id == pageTemplatesDto.PageStructureTemplateId && t.IsPageStructureTemplate);

                    // Update Page Structure Template
                    if (newPageStructureTemplate != null)
                    {
                        ConsoleRepository.Attach <PageTemplate>(pageStructureTemplate);
                        pageStructureTemplate.Template = newPageStructureTemplate;
                    }
                    else
                    {
                        throw new Exception("UpdatePageTemplates - new pageStructureTemplate not found");
                    }

                    // Update Page Section Templates
                    var pageSectionTemplates = ConsoleRepository.Query <PageTemplate>(pt => pt.Template, pt => pt.TemplatedPage, pt => pt.Team)
                                               .Where(pt => pt.TemplatedPageId == pageTemplatesDto.PageId && pt.TeamId == pageTemplatesDto.TeamId && pt.Template.IsPageStructureTemplate == false).ToList();

                    if (pageSectionTemplates.Count > 0)
                    {
                        // TODO: turn this into a foreach...
                        foreach (var dtoItem in pageTemplatesDto.SectionTemplates)
                        {
                            var didEdit = false;
                            foreach (var dbItem in pageSectionTemplates)
                            {
                                if (dbItem.PageSectionId == dtoItem.PageSectionId)
                                {
                                    dbItem.TemplateId            = dtoItem.TemplateId;
                                    dbItem.IsVisible             = dtoItem.IsVisible;
                                    dbItem.SendConnectionKeys    = dtoItem.SendConnectionKeys;
                                    dbItem.ReceiveConnectionKeys = dtoItem.ReceiveConnectionKeys;
                                    dbItem.Settings = String.IsNullOrEmpty(dtoItem.Settings) ? null : dtoItem.Settings;
                                    didEdit         = true;
                                    break;
                                }
                            }

                            if (!didEdit)
                            {
                                ConsoleRepository.Add <PageTemplate>(new PageTemplate()
                                {
                                    TemplateId            = dtoItem.TemplateId,
                                    TeamId                = pageTemplatesDto.TeamId,
                                    TemplatedPageId       = pageTemplatesDto.PageId,
                                    PageSectionId         = dtoItem.PageSectionId,
                                    IsVisible             = dtoItem.IsVisible,
                                    SendConnectionKeys    = dtoItem.SendConnectionKeys,
                                    ReceiveConnectionKeys = dtoItem.ReceiveConnectionKeys,
                                    Settings              = String.IsNullOrEmpty(dtoItem.Settings) ? null : dtoItem.Settings
                                });
                            }
                        }
                        //for (var index = 0; index < 8; index++) // Up to 8 template sections...
                        //{
                        //    SetTemplateSection(pageTemplatesDto, index, pageSectionTemplates);
                        //}
                    }
                    else
                    {
                        throw new Exception("UpdatePageTemplates - no SectionTemplates found");
                    }
                }
                else
                {
                    throw new Exception("UpdatePageTemplates - pageStructureTemplate not found");
                }

                ConsoleRepository.SaveChanges();
            }
        }