internal static async Task <object[]> GetLivestreamSettings(BitcornContext dbContext, string[] columns) { if (columns == null) { columns = new string[0]; } var streams = await dbContext.GetLivestreams().Where(e => e.Stream.Enabled).ToArrayAsync(); List <object> output = new List <object>(); var userIds = streams.Select(x => x.User.UserId).ToArray(); //var selectColumns = columns.Split(" "); var selectedColumns = await UserReflection.GetColumns(dbContext, columns, userIds, new UserReflectionContext(UserReflection.StreamerModel));//new Dictionary<string,object>(); foreach (var entry in streams) { if (!string.IsNullOrEmpty(entry.User.UserIdentity.TwitchId)) { var srcColumns = new Dictionary <string, object>(); try { if (selectedColumns.TryGetValue(entry.User.UserId, out var cols)) { if (cols != null) { srcColumns = cols; } } } catch { } output.Add(LivestreamUtils.GetLivestreamSettingsForUser(entry.User, entry.Stream, srcColumns)); //channels.Add(stream.UserIdentity.TwitchUsername); } } return(output.ToArray()); }