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); }
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); }