public ActionResult GetGuildNav() { var guildIds = new List <int>(); if (Request.IsAuthenticated) { guildIds.AddRange(_authUserCharacterRepository.GetGuildIdsForEmail(User.Identity.GetUserId())); } var guildNav = _navigationRepository.GetGuildNavigation(); var navModel = new List <GuildNavShard>(); foreach (var guild in guildNav) { var guildNavShard = navModel.FirstOrDefault(n => n.Name == guild.Shard.Name); if (guildNavShard == null) { navModel.Add(new GuildNavShard() { Name = guild.Shard.Name, Guilds = new List <GuildNavGuild>() { new GuildNavGuild() { Id = guild.Id, Name = guild.Name, Visible = !guild.HideFromLists || guildIds.Contains(guild.Id) } } }); } else { guildNavShard.Guilds.Add(new GuildNavGuild() { Id = guild.Id, Name = guild.Name, Visible = !guild.HideFromLists || guildIds.Contains(guild.Id) }); } } return(PartialView("_GuildNav", navModel)); }