Exemple #1
0
        public async Task <MenuItemAdminModel> GetItemForAdminAsync(Guid siteId, Guid menuId, Guid menuItemId)
        {
            var menu = _menuRepository.GetById(siteId, menuId);

            if (menu == null || menu.Status == MenuStatus.Deleted)
            {
                return(new MenuItemAdminModel());
            }

            var menuItem = menu.MenuItems.FirstOrDefault(x => x.Id == menuItemId);

            if (menuItem == null || menuItem.Status == MenuItemStatus.Deleted)
            {
                return(new MenuItemAdminModel());
            }

            var result = new MenuItemAdminModel
            {
                Id           = menuItem.Id,
                MenuItemType = menuItem.MenuItemType,
                PageId       = menuItem.PageId,
                Link         = menuItem.Link,
                Text         = menuItem.Text,
                Title        = menuItem.Title
            };

            var languages = _languageRepository.GetAll(siteId);

            foreach (var language in languages)
            {
                var text  = string.Empty;
                var title = string.Empty;

                var existingLocalisation = menuItem.MenuItemLocalisations.FirstOrDefault(x => x.LanguageId == language.Id);

                if (existingLocalisation != null)
                {
                    text  = existingLocalisation.Text;
                    title = existingLocalisation.Title;
                }

                result.MenuItemLocalisations.Add(new MenuItemAdminModel.MenuItemLocalisation
                {
                    LanguageId   = language.Id,
                    LanguageName = language.Name,
                    Text         = text,
                    Title        = title
                });
            }

            return(result);
        }
Exemple #2
0
        public MenuItemAdminModel GetDefaultItemForAdmin(Guid siteId, Guid menuId)
        {
            using (var context = _dbContextFactory.Create())
            {
                var menu = context.Menus.FirstOrDefault(x => x.SiteId == siteId && x.Id == menuId && x.Status != MenuStatus.Deleted);

                if (menu == null)
                {
                    return(new MenuItemAdminModel());
                }

                var result = new MenuItemAdminModel();

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

                foreach (var language in languages)
                {
                    result.MenuItemLocalisations.Add(new MenuItemAdminModel.MenuItemLocalisation
                    {
                        LanguageId     = language.Id,
                        LanguageName   = language.Name,
                        LanguageStatus = language.Status,
                        Text           = string.Empty,
                        Title          = string.Empty
                    });
                }

                foreach (var role in _roleService.GetAllRoles())
                {
                    result.MenuItemPermissions.Add(new MenuItemAdminModel.MenuItemPermission
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Selected = role.Name == DefaultRoleNames.Administrator,
                        Disabled = role.Name == DefaultRoleNames.Administrator
                    });
                }

                return(result);
            }
        }
Exemple #3
0
        public MenuItemAdminModel GetItemForAdmin(Guid siteId, Guid menuId, Guid menuItemId)
        {
            using (var context = _dbContextFactory.Create())
            {
                var menu = context.Menus.FirstOrDefault(x => x.SiteId == siteId && x.Id == menuId && x.Status != MenuStatus.Deleted);

                if (menu == null)
                {
                    return(new MenuItemAdminModel());
                }

                var menuItem = context.MenuItems
                               .Include(x => x.MenuItemLocalisations)
                               .Include(x => x.MenuItemPermissions)
                               .FirstOrDefault(x => x.MenuId == menuId && x.Id == menuItemId && x.Status != MenuItemStatus.Deleted);

                if (menuItem == null)
                {
                    return(new MenuItemAdminModel());
                }

                var result = new MenuItemAdminModel
                {
                    Id     = menuItem.Id,
                    Type   = menuItem.Type,
                    PageId = menuItem.PageId,
                    Link   = menuItem.Link,
                    Text   = menuItem.Text,
                    Title  = menuItem.Title
                };

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

                foreach (var language in languages)
                {
                    var text  = string.Empty;
                    var title = string.Empty;

                    var existingLocalisation = menuItem.MenuItemLocalisations.FirstOrDefault(x => x.LanguageId == language.Id);

                    if (existingLocalisation != null)
                    {
                        text  = existingLocalisation.Text;
                        title = existingLocalisation.Title;
                    }

                    result.MenuItemLocalisations.Add(new MenuItemAdminModel.MenuItemLocalisation
                    {
                        MenuItemId     = menuItem.Id,
                        LanguageId     = language.Id,
                        LanguageName   = language.Name,
                        LanguageStatus = language.Status,
                        Text           = text,
                        Title          = title
                    });
                }

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

                    result.MenuItemPermissions.Add(new MenuItemAdminModel.MenuItemPermission
                    {
                        MenuItemId = menuItem.Id,
                        RoleId     = role.Id,
                        RoleName   = role.Name,
                        Selected   = selected || role.Name == DefaultRoleNames.Administrator,
                        Disabled   = role.Name == DefaultRoleNames.Administrator
                    });
                }

                return(result);
            }
        }
Exemple #4
0
        public MenuItemAdminModel GetItemForAdmin(Guid siteId, Guid menuId, Guid menuItemId)
        {
            var menu = _menuRepository.GetById(siteId, menuId);

            if (menu == null)
            {
                return(new MenuItemAdminModel());
            }

            var menuItem = menu.MenuItems.FirstOrDefault(x => x.Id == menuItemId);

            if (menuItem == null)
            {
                return(new MenuItemAdminModel());
            }

            var result = new MenuItemAdminModel
            {
                Id     = menuItem.Id,
                Type   = menuItem.Type,
                PageId = menuItem.PageId,
                Link   = menuItem.Link,
                Text   = menuItem.Text,
                Title  = menuItem.Title
            };

            var languages = _languageRepository.GetAll(siteId);

            foreach (var language in languages)
            {
                var text  = string.Empty;
                var title = string.Empty;

                var existingLocalisation = menuItem.MenuItemLocalisations.FirstOrDefault(x => x.LanguageId == language.Id);

                if (existingLocalisation != null)
                {
                    text  = existingLocalisation.Text;
                    title = existingLocalisation.Title;
                }

                result.MenuItemLocalisations.Add(new MenuItemAdminModel.MenuItemLocalisation
                {
                    MenuItemId     = menuItem.Id,
                    LanguageId     = language.Id,
                    LanguageName   = language.Name,
                    LanguageStatus = language.Status,
                    Text           = text,
                    Title          = title
                });
            }

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

                result.MenuItemPermissions.Add(new MenuItemAdminModel.MenuItemPermission
                {
                    MenuItemId = menuItem.Id,
                    RoleId     = role.Id,
                    RoleName   = role.Name,
                    Selected   = selected
                });
            }

            return(result);
        }