protected override void BeginProcessing()
        {
            var sideNav = new SideNav
            {
                Id       = Id,
                Fixed    = Fixed.IsPresent,
                None     = None.IsPresent,
                Callback = Endpoint.TryGenerateEndpoint(Id, SessionState),
                Width    = Width
            };

            sideNav.Content = GetItemsFromScriptBlock <SideNavItem>(Content)?.ToArray();

            WriteObject(sideNav);
        }
예제 #2
0
        public async Task <SideNav> CreateSideNavUserAsync()
        {
            string userId = User.Claims.First(c => c.Type == "UserID").Value;
            var    user   = await _userManager.FindByIdAsync(userId);

            List <Guid> listGroupId = new List <Guid>();
            List <Guid> listAccount = new List <Guid>();
            SideNav     sidenav     = new SideNav();

            sidenav.items = new List <SideNavItem>();

            foreach (var account in user.Accounts)
            {
                if (account.CurrentCharacter != null)
                {
                    if (account.CurrentCharacter.Fk_Group != Guid.Empty && _groups.FindIndex(o => o.Key == account.CurrentCharacter.Fk_Group) != -1 && !listGroupId.Contains(account.CurrentCharacter.Fk_Group))
                    {
                        listGroupId.Add(account.CurrentCharacter.Fk_Group);
                    }
                    else if (account.CurrentCharacter.Fk_Group == Guid.Empty)
                    {
                        SideNavItem item = new SideNavItem()
                        {
                            Id      = account.CurrentCharacter.Key.ToString(),
                            isGroup = false,
                            Name    = account.CurrentCharacter.Name,
                            State   = ControllersModel.Enum.SideNavState.CONNECTED
                        };
                        sidenav.items.Add(item);
                    }
                }
            }
            foreach (var groupId in listGroupId)
            {
                GroupDB     group = _groups.Find(o => o.Key == groupId) as GroupDB;
                SideNavItem item  = new SideNavItem()
                {
                    Id       = groupId.ToString(),
                    Name     = group.Name,
                    isGroup  = true,
                    State    = ControllersModel.Enum.SideNavState.CONNECTED,
                    Children = new List <SideNavItem>()
                };

                foreach (var account in user.Accounts)
                {
                    if (account.CurrentCharacter != null)
                    {
                        if (account.CurrentCharacter.Fk_Group == groupId)
                        {
                            SideNavItem ChildItem = new SideNavItem()
                            {
                                Id      = account.CurrentCharacter.Key.ToString(),
                                isGroup = false,
                                Name    = account.CurrentCharacter.Name,
                                State   = ControllersModel.Enum.SideNavState.CONNECTED
                            };
                            item.Children.Add(ChildItem);
                        }
                    }
                }
                sidenav.items.Add(item);
            }

            return(sidenav);
        }