/// <summary> /// ChatModeratorActions model constructor. /// </summary> /// <param name="jsonStr">The json string.</param> /// <exception cref="ArgumentOutOfRangeException"></exception> public ChannelSubscription(string jsonStr) { var message = JObject.Parse(jsonStr); Username = message.SelectToken("user_name")?.ToString(); DisplayName = message.SelectToken("display_name")?.ToString(); RecipientName = message.SelectToken("recipient_user_name")?.ToString(); RecipientDisplayName = message.SelectToken("recipient_display_name")?.ToString(); ChannelName = message.SelectToken("channel_name")?.ToString(); UserId = message.SelectToken("user_id")?.ToString(); RecipientId = message.SelectToken("recipient_id")?.ToString(); ChannelId = message.SelectToken("channel_id")?.ToString(); Time = Common.Helpers.DateTimeStringToObject(message.SelectToken("time")?.ToString()); switch (message.SelectToken("sub_plan").ToString().ToLower()) { case "prime": SubscriptionPlan = Enums.SubscriptionPlan.Prime; break; case "1000": SubscriptionPlan = Enums.SubscriptionPlan.Tier1; break; case "2000": SubscriptionPlan = Enums.SubscriptionPlan.Tier2; break; case "3000": SubscriptionPlan = Enums.SubscriptionPlan.Tier3; break; default: throw new ArgumentOutOfRangeException(); } SubscriptionPlanName = message.SelectToken("sub_plan_name")?.ToString(); SubMessage = new SubMessage(message.SelectToken("sub_message")); Context = message.SelectToken("context")?.ToString(); var monthsToken = message.SelectToken("months"); if (monthsToken != null) { Months = int.Parse(monthsToken.ToString()); } // these properties are hyphenated unlike all others var cumulativeMonthsToken = message.SelectToken("cumulative-months"); var streakMonthsToken = message.SelectToken("streak-months"); if (cumulativeMonthsToken != null) { CumulativeMonths = int.Parse(cumulativeMonthsToken.ToString()); } if (streakMonthsToken != null) { StreakMonths = int.Parse(streakMonthsToken.ToString()); } }
/// <summary>ChatModeratorActions model constructor.</summary> public ChannelSubscription(string jsonStr) { JToken message = JObject.Parse(jsonStr); Username = message.SelectToken("user_name")?.ToString(); DisplayName = message.SelectToken("display_name")?.ToString(); RecipientName = message.SelectToken("recipient_user_name")?.ToString(); RecipientDisplayName = message.SelectToken("recipient_display_name")?.ToString(); ChannelName = message.SelectToken("channel_name")?.ToString(); UserId = message.SelectToken("user_id")?.ToString(); RecipientId = message.SelectToken("recipient_id")?.ToString(); ChannelId = message.SelectToken("channel_id")?.ToString(); Time = Common.Helpers.DateTimeStringToObject(message.SelectToken("time")?.ToString()); switch (message.SelectToken("sub_plan").ToString().ToLower()) { case "prime": SubscriptionPlan = Enums.SubscriptionPlan.Prime; break; case "1000": SubscriptionPlan = Enums.SubscriptionPlan.Tier1; break; case "2000": SubscriptionPlan = Enums.SubscriptionPlan.Tier2; break; case "3000": SubscriptionPlan = Enums.SubscriptionPlan.Tier3; break; default: throw new ArgumentOutOfRangeException(); } SubscriptionPlanName = message.SelectToken("sub_plan_name")?.ToString(); TotalMonths = int.Parse(message.SelectToken("cumulative_months").ToString()); StreakMonths = int.Parse(message.SelectToken("streak_months").ToString()); SubMessage = new SubMessage(message.SelectToken("sub_message")); Context = message.SelectToken("context")?.ToString(); }
/// <summary> /// ChatModeratorActions model constructor. /// </summary> /// <param name="jsonStr">The json string.</param> /// <exception cref="ArgumentOutOfRangeException"></exception> public ChannelSubscription(string jsonStr) { var message = JObject.Parse(jsonStr); Username = message.SelectToken("user_name")?.ToString(); DisplayName = message.SelectToken("display_name")?.ToString(); RecipientName = message.SelectToken("recipient_user_name")?.ToString(); RecipientDisplayName = message.SelectToken("recipient_display_name")?.ToString(); ChannelName = message.SelectToken("channel_name")?.ToString(); UserId = message.SelectToken("user_id")?.ToString(); RecipientId = message.SelectToken("recipient_id")?.ToString(); ChannelId = message.SelectToken("channel_id")?.ToString(); Time = Common.Helpers.DateTimeStringToObject(message.SelectToken("time")?.ToString()); switch (message.SelectToken("sub_plan").ToString().ToLower()) { case "prime": SubscriptionPlan = Enums.SubscriptionPlan.Prime; break; case "1000": SubscriptionPlan = Enums.SubscriptionPlan.Tier1; break; case "2000": SubscriptionPlan = Enums.SubscriptionPlan.Tier2; break; case "3000": SubscriptionPlan = Enums.SubscriptionPlan.Tier3; break; default: throw new ArgumentOutOfRangeException(); } SubscriptionPlanName = message.SelectToken("sub_plan_name")?.ToString(); SubMessage = new SubMessage(message.SelectToken("sub_message")); var isGiftToken = message.SelectToken("is_gift")?.ToString(); if (isGiftToken != null) { IsGift = Convert.ToBoolean(isGiftToken.ToString()); } var multiMonthDurationToken = message.SelectToken("multi_month_duration")?.ToString(); if (multiMonthDurationToken != null) { MultiMonthDuration = int.Parse(multiMonthDurationToken.ToString()); } Context = message.SelectToken("context")?.ToString(); var monthsToken = message.SelectToken("months"); if (monthsToken != null) { Months = int.Parse(monthsToken.ToString()); } var cumulativeMonthsToken = message.SelectToken("cumulative_months"); if (cumulativeMonthsToken != null) { CumulativeMonths = int.Parse(cumulativeMonthsToken.ToString()); } var streakMonthsToken = message.SelectToken("streak_months"); if (streakMonthsToken != null) { StreakMonths = int.Parse(streakMonthsToken.ToString()); } }