예제 #1
0
        public PageAdminModel GetDefaultAdminModel(Guid siteId)
        {
            var result = new PageAdminModel();

            var languages = _languageRepository.GetAll(siteId).Where(x => x.Status != LanguageStatus.Deleted);

            foreach (var language in languages)
            {
                result.PageLocalisations.Add(new PageLocalisationAdminModel
                {
                    LanguageId   = language.Id,
                    LanguageName = language.Name
                });
            }

            foreach (var role in _roleService.GetAllRoles())
            {
                bool selected = role.Name == DefaultRoleNames.Administrator;

                result.PagePermissions.Add(new PagePermissionModel
                {
                    RoleId   = role.Id,
                    RoleName = role.Name,
                    Type     = PermissionType.View,
                    Selected = selected
                });
            }

            return(result);
        }
예제 #2
0
        public IActionResult Update(PageAdminModel model)
        {
            var command = _mapper.Map <UpdatePageDetails>(model);

            command.SiteId          = SiteId;
            command.PagePermissions = model.PagePermissions.ToDomain();
            _commandSender.Send <UpdatePageDetails, Page>(command);
            return(new NoContentResult());
        }
예제 #3
0
        public PageAdminModel GetDefaultAdminModel(Guid siteId)
        {
            using (var context = _dbContextFactory.Create())
            {
                var result = new PageAdminModel();

                var languages = context.Languages
                                .Where(x => x.SiteId == siteId && x.Status != LanguageStatus.Deleted)
                                .OrderBy(x => x.SortOrder)
                                .ToList();

                foreach (var language in languages)
                {
                    result.PageLocalisations.Add(new PageLocalisationAdminModel
                    {
                        LanguageId     = language.Id,
                        LanguageName   = language.Name,
                        LanguageStatus = language.Status
                    });
                }

                foreach (var role in _roleService.GetAllRoles())
                {
                    var pagePermission = new PagePermissionModel
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Disabled = role.Name == DefaultRoleNames.Administrator
                    };

                    foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                    {
                        pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                        {
                            Type     = permisisonType,
                            Selected = role.Name == DefaultRoleNames.Administrator
                        });
                    }

                    result.PagePermissions.Add(pagePermission);
                }

                var menus =
                    context.Menus.Where(x => x.SiteId == siteId && x.Status == MenuStatus.Active)
                    .Select(menu => new MenuModel
                {
                    MenuId   = menu.Id,
                    MenuName = menu.Name,
                    Selected = false
                });

                result.Menus.AddRange(menus);

                return(result);
            }
        }
예제 #4
0
        public async Task <IActionResult> Update(PageAdminModel model)
        {
            var command = _mapper.Map <UpdatePageDetails>(model);

            command.SiteId          = SiteId;
            command.PagePermissions = GetSelectedPagePermissions(model.PagePermissions);
            await Task.Run(() => _commandSender.Send <UpdatePageDetails, Page>(command));

            return(new NoContentResult());
        }
예제 #5
0
        public async Task <IActionResult> Save(PageAdminModel model)
        {
            var command = _mapper.Map <CreatePage>(model);

            command.SiteId          = SiteId;
            command.Id              = Guid.NewGuid();
            command.PagePermissions = GetSelectedPagePermissions(model.PagePermissions);
            await Task.Run(() => _commandSender.Send <CreatePage, Page>(command));

            return(new NoContentResult());
        }
예제 #6
0
        public IActionResult Save(PageAdminModel model)
        {
            var command = _mapper.Map <CreatePage>(model);

            command.SiteId          = SiteId;
            command.Id              = Guid.NewGuid();
            command.PagePermissions = model.PagePermissions.ToDomain();
            command.MenuIds         = model.Menus.ToCommand();
            _commandSender.Send <CreatePage, Page>(command);
            return(new NoContentResult());
        }
예제 #7
0
        public PageAdminModel GetDefaultAdminModel(Guid siteId)
        {
            var result = new PageAdminModel();

            var languages = _languageRepository.GetAll(siteId);

            foreach (var language in languages)
            {
                result.PageLocalisations.Add(new PageLocalisationAdminModel
                {
                    LanguageId     = language.Id,
                    LanguageName   = language.Name,
                    LanguageStatus = language.Status
                });
            }

            foreach (var role in _roleService.GetAllRoles())
            {
                var pagePermission = new PagePermissionModel
                {
                    RoleId   = role.Id,
                    RoleName = role.Name
                };

                foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                {
                    bool selected = role.Name == DefaultRoleNames.Administrator;

                    pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                    {
                        Type     = permisisonType,
                        Selected = selected
                    });
                }

                result.PagePermissions.Add(pagePermission);
            }

            return(result);
        }
예제 #8
0
        public PageAdminModel GetAdminModel(Guid siteId, Guid pageId)
        {
            using (var context = _dbContextFactory.Create())
            {
                var page = context.Pages
                           .Include(x => x.PageLocalisations)
                           .Include(x => x.PagePermissions)
                           .FirstOrDefault(x => x.SiteId == siteId && x.Id == pageId && x.Status != PageStatus.Deleted);

                if (page == null)
                {
                    return(null);
                }

                var result = new PageAdminModel
                {
                    Id              = page.Id,
                    Name            = page.Name,
                    Status          = page.Status,
                    Url             = page.Url,
                    Title           = page.Title,
                    MetaDescription = page.MetaDescription,
                    MetaKeywords    = page.MetaKeywords
                };

                var languages = context.Languages
                                .Where(x => x.SiteId == siteId && x.Status != LanguageStatus.Deleted)
                                .OrderBy(x => x.SortOrder)
                                .ToList();

                foreach (var language in languages)
                {
                    var url             = string.Empty;
                    var title           = string.Empty;
                    var metaDescription = string.Empty;
                    var metaKeywords    = string.Empty;

                    var existingLocalisation = page
                                               .PageLocalisations
                                               .FirstOrDefault(x => x.LanguageId == language.Id);

                    if (existingLocalisation != null)
                    {
                        url             = existingLocalisation.Url;
                        title           = existingLocalisation.Title;
                        metaDescription = existingLocalisation.MetaDescription;
                        metaKeywords    = existingLocalisation.MetaKeywords;
                    }

                    result.PageLocalisations.Add(new PageLocalisationAdminModel
                    {
                        PageId          = page.Id,
                        LanguageId      = language.Id,
                        LanguageName    = language.Name,
                        LanguageStatus  = language.Status,
                        Url             = url,
                        Title           = title,
                        MetaDescription = metaDescription,
                        MetaKeywords    = metaKeywords
                    });
                }

                foreach (var role in _roleService.GetAllRoles())
                {
                    var pagePermission = new PagePermissionModel
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Disabled = role.Name == DefaultRoleNames.Administrator
                    };

                    foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                    {
                        bool selected = page.PagePermissions
                                        .FirstOrDefault(x => x.RoleId == role.Id && x.Type == permisisonType) != null;

                        pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                        {
                            Type     = permisisonType,
                            Selected = selected || role.Name == DefaultRoleNames.Administrator
                        });
                    }

                    result.PagePermissions.Add(pagePermission);
                }

                return(result);
            }
        }
예제 #9
0
        public PageAdminModel GetAdminModel(Guid siteId, Guid pageId)
        {
            var page = _pageRepository.GetById(siteId, pageId);

            if (page == null || page.Status == PageStatus.Deleted)
            {
                return(null);
            }

            var result = new PageAdminModel
            {
                Id              = page.Id,
                Name            = page.Name,
                Status          = page.Status,
                Url             = page.Url,
                Title           = page.Title,
                MetaDescription = page.MetaDescription,
                MetaKeywords    = page.MetaKeywords
            };

            var languages = _languageRepository.GetAll(siteId).Where(x => x.Status != LanguageStatus.Deleted);

            foreach (var language in languages)
            {
                var url             = string.Empty;
                var title           = string.Empty;
                var metaDescription = string.Empty;
                var metaKeywords    = string.Empty;

                var existingLocalisation = page
                                           .PageLocalisations
                                           .FirstOrDefault(x => x.LanguageId == language.Id);

                if (existingLocalisation != null)
                {
                    url             = existingLocalisation.Url;
                    title           = existingLocalisation.Title;
                    metaDescription = existingLocalisation.MetaDescription;
                    metaKeywords    = existingLocalisation.MetaKeywords;
                }

                result.PageLocalisations.Add(new PageLocalisationAdminModel
                {
                    PageId          = page.Id,
                    LanguageId      = language.Id,
                    LanguageName    = language.Name,
                    Url             = url,
                    Title           = title,
                    MetaDescription = metaDescription,
                    MetaKeywords    = metaKeywords
                });
            }

            foreach (var role in _roleService.GetAllRoles())
            {
                bool selected = page.PagePermissions.FirstOrDefault(x => x.RoleId == role.Id) != null;

                result.PagePermissions.Add(new PagePermissionModel
                {
                    RoleId   = role.Id,
                    RoleName = role.Name,
                    Type     = PermissionType.View,
                    Selected = selected
                });
            }

            return(result);
        }