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(); } }