private void PopulateAccountInformation() { using (WebClient webClient = new WebClient()) { var jsonFile = webClient.DownloadString(ApiUrl); _iptvAccount = IptvAccount.FromJson(jsonFile); lblCreatedDate.Text = string.Format("{0:yyyy-MM-dd}", EpochToDate(_iptvAccount.UserInfo.CreatedAt)); lblExpiresDate.Text = string.Format("{0:yyyy-MM-dd}", EpochToDate(_iptvAccount.UserInfo.ExpDate)); lblAccountStatus.Text = _iptvAccount.UserInfo.Status; lblOutputFormats.Text = string.Join(", ", _iptvAccount.UserInfo.AllowedOutputFormats); lblActiveConnections.Text = _iptvAccount.UserInfo.ActiveCons.ToString(); lblMaxConnections.Text = _iptvAccount.UserInfo.MaxConnections.ToString(); lblLiveCategories.Text = ((_iptvAccount.Categories.Live != null) ? _iptvAccount.Categories.Live.Count() : 0).ToString("N0"); lblMovieCategories.Text = ((_iptvAccount.Categories.Movie != null) ? _iptvAccount.Categories.Movie.Count() : 0).ToString("N0"); lblSeriesCategories.Text = ((_iptvAccount.Categories.Series != null) ? _iptvAccount.Categories.Series.Count() : 0).ToString("N0"); int catchupChannelCount = 0; foreach (var keyValuePair in _iptvAccount.AvailableChannels) { var channel = keyValuePair.Value; if (channel.TvArchiveDuration > 0) { catchupChannelCount++; } } lblCatchupChannels.Text = catchupChannelCount.ToString(); lblTotalChannels.Text = _iptvAccount.AvailableChannels.Count.ToString("N0"); lblTsM3u.Text = TsM3uUrl; lblHlsM3u.Text = HlsM3uUrl; lblXmlEpg.Text = XmlEpgUrl; lblWatchOnline.Text = WatchOnlineUrl; lblTsM3u.Enabled = (lblTsM3u.Text != "Not Available"); lblHlsM3u.Enabled = (lblHlsM3u.Text != "Not Available"); } }
public static string ToJson(this IptvAccount self) => JsonConvert.SerializeObject(self, Converter.Settings);