コード例 #1
0
        public async Task <IEnumerable <TournamentCategory> > GetTournament()
        {
            if (cache.TryGetValue <IEnumerable <TournamentCategory> >("GetTournament", out var cached))
            {
                return(cached);
            }
            Stream getStream(List <Stream> streams, Random rand)
            {
                var stream = streams[rand.Next(streams.Count)];

                streams.Remove(stream);
                return(stream);
            }

            var streams = await streamsApi.GetStreams();

            var random     = new Random();
            var calculated = categories
                             .Select(c => (category: c, count: random.Next(1, 5)))
                             .Select(p => new TournamentCategory
            {
                category    = p.category,
                tournaments = Enumerable.Repeat(0, p.count)
                              .Select(_ => getStream(streams, random))
                              .Select(s => mapper.Map <Tournament>(s))
                              .ToList()
            }).ToList();

            cache.Set("GetTournament", calculated, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(1)));

            return(calculated);
        }
コード例 #2
0
 public async Task <List <Stream> > GetStreams(string country = "", string haspb = "on", int start = 0)
 {
     return(await streamsApi.GetStreams(country, haspb, start));
 }