Exemple #1
0
        private LivestreamModel ConvertToLivestreamModel(ExternalAPIs.Hitbox.Dto.Livestream livestream)
        {
            var existingChannel = moniteredChannels.FirstOrDefault(x => x.ChannelId.IsEqualTo(livestream.Channel?.UserName));
            var livestreamModel = new LivestreamModel(livestream.Channel?.UserName, existingChannel ?? new ChannelIdentifier(this, livestream.Channel?.UserName));

            livestreamModel.DisplayName         = livestream.MediaDisplayName;
            livestreamModel.Description         = livestream.MediaStatus?.Trim();
            livestreamModel.Game                = livestream.CategoryName;
            livestreamModel.BroadcasterLanguage = livestream.MediaCountries?.FirstOrDefault()?.ToLower();
            livestreamModel.ThumbnailUrls       = new ThumbnailUrls()
            {
                Medium = StaticContentPrefixUrl + livestream.MediaThumbnail,
                Small  = StaticContentPrefixUrl + livestream.MediaThumbnail,
                Large  = StaticContentPrefixUrl + livestream.MediaThumbnailLarge
            };

            if (livestream.MediaIsLive)
            {
                livestreamModel.Viewers   = livestream.MediaViews;
                livestreamModel.StartTime = livestream.MediaLiveSince ?? DateTimeOffset.Now;
                livestreamModel.Live      = true;
            }
            else
            {
                livestreamModel.Offline();
            }

            return(livestreamModel);
        }
 private void SetViewerCount(LivestreamModel livestreamModel, int viewers)
 {
     livestreamModel.Viewers = viewers;
     if (viewers <= 0)
     {
         livestreamModel.Offline();
     }
 }