public MessageBoxNotice(NoticeBase b) { Enabled = b.Enabled; Title = b.Title; Content = b.Content; Trigger = b.Trigger; }
public NotificationNotice(NoticeBase b) { Title = b.Title; Content = b.Content; Trigger = b.Trigger; }
private static void Check() { try { using var c = MiscUtils.GetDefaultWebClient(); var sMsg = c.DownloadString(new Uri(Url)); var jMsg = JObject.Parse(sMsg); var newNotices = new List <NoticeBase>(); var jNotices = jMsg["notices"]; if (jNotices == null) { return; } foreach (var jNotice in jNotices) { var jType = jNotice["Type"]; if (jType == null) { continue; } var type = jType.Value <string>(); var jDetails = jNotice["Details"]; if (jDetails == null) { continue; } // todo: maybe use a factory var jEnabled = jNotice[nameof(NoticeBase.Enabled)]; var jTrigger = jNotice[nameof(NoticeBase.Trigger)]; var jTitle = jDetails[nameof(NoticeBase.Title)]; var jContent = jDetails[nameof(NoticeBase.Content)]; if (jEnabled == null || jTrigger == null || jTitle == null || jContent == null) { continue; } var notice = new NoticeBase { Enabled = jEnabled.Value <bool>(), Trigger = (NoticeTrigger)jTrigger.Value <int>(), Title = jTitle.Value <string>(), Content = jContent.Value <string>() }; var duration = jDetails[nameof(NotificationNotice.Duration)]?.Value <int>() ?? 0; var intNotifType = jDetails[nameof(NotificationNotice.NotificationType)]?.Value <int>() ?? 0; var notifType = (NotificationType)intNotifType; notice = type switch { nameof(NotificationNotice) => new NotificationNotice(notice) { Duration = duration, NotificationType = notifType }, nameof(MessageBoxNotice) => new MessageBoxNotice(notice), _ => notice }; newNotices.Add(notice); } _notices = _notices.Where(existing => newNotices.All(n => n.Content != existing.Content)).ToList(); foreach (var newNotice in newNotices) { _notices.Add(newNotice); } } catch (Exception e) { Log.F($"Failed to check for messages. {e}"); } }