Esempio n. 1
0
        public void SendingNewSeries(IEnumerable <EpisodeDto> episodes)
        {
            foreach (var episode in episodes)
            {
                if (_seriesRepository.GetByNameRuSeries(episode.TitleSeries) == default)
                {
                    var seriesLink = episode.Link.Split("season")[0] + "seasons";

                    _seriesRepository.Add(new Series
                    {
                        IsCompleted  = false,
                        NameEn       = episode.TitleSeriesEn,
                        Link         = seriesLink,
                        NameRu       = episode.TitleSeries,
                        SeasonsCount = episode.NumberSeason
                    });
                    continue;
                }

                var chatIdQueue = MakeQueueChatId(episode.TitleSeries);

                var countRequests = 0;

                while (chatIdQueue.Count != 0)
                {
                    var chatId = chatIdQueue.Dequeue();

                    countRequests = SendNewEpisode(countRequests, episode, chatId).Result;

                    if (countRequests < 20)
                    {
                        continue;
                    }
                    Thread.Sleep(TimeSpan.FromSeconds(1));
                    countRequests = 0;
                }
            }
        }