private void InsertAlert(AlertData alert, rt_alertRow existingAlert) { var newAlertRow = rt_alert.Newrt_alertRow(); newAlertRow.file_time = (int)alert.HeaderTimestamp; newAlertRow.alert_id = alert.AlertId; newAlertRow.version_id = existingAlert?.version_id + 1 ?? 1; newAlertRow.cause = alert.Cause; newAlertRow.effect = alert.Effect; newAlertRow.header_text = alert.HeaderText; newAlertRow.description_text = alert.DescriptionText; newAlertRow.url = alert.Url; newAlertRow.closed = alert.Closed; newAlertRow.first_file_time = (int)alert.HeaderTimestamp; newAlertRow.last_file_time = (int)alert.HeaderTimestamp; rt_alert.Rows.Add(newAlertRow); //Console.WriteLine("*Alert: " + newAlertRow.Alert); foreach (var activePeriod in alert.ActivePeriods) { var newActivePeriodRow = rt_alert_active_period.Newrt_alert_active_periodRow(); newActivePeriodRow.version_id = newAlertRow.version_id; newActivePeriodRow.active_period_start = (int)activePeriod.ActivePeriodStart; if (activePeriod.ActivePeriodEnd > 0) { newActivePeriodRow.active_period_end = (int)activePeriod.ActivePeriodEnd; } newActivePeriodRow.alert_id = activePeriod.AlertId; rt_alert_active_period.Rows.Add(newActivePeriodRow); //Console.WriteLine(" *Active Period: " + newActivePeriodRow.ActivePeriod); } foreach (var informedEntity in alert.InformedEntities) { var newInformedEntityRow = rt_alert_informed_entity.Newrt_alert_informed_entityRow(); newInformedEntityRow.version_id = newAlertRow.version_id; newInformedEntityRow.alert_id = informedEntity.AlertId; newInformedEntityRow.agency_id = informedEntity.AgencyId; if (!string.IsNullOrEmpty(informedEntity.RouteId)) { newInformedEntityRow.route_id = informedEntity.RouteId; } newInformedEntityRow.route_type = informedEntity.RouteType; if (!string.IsNullOrEmpty(informedEntity.TripId)) { newInformedEntityRow.trip_id = informedEntity.TripId; } if (!string.IsNullOrEmpty(informedEntity.StopId)) { newInformedEntityRow.stop_id = informedEntity.StopId; } rt_alert_informed_entity.Rows.Add(newInformedEntityRow); //Console.WriteLine(" *Informed Entity: " + newInformedEntityRow.InformedEntity); } }
private void UpdateAlert(AlertData alert, rt_alertRow existingAlert) { existingAlert.file_time = (int)alert.HeaderTimestamp; existingAlert.last_file_time = (int)alert.HeaderTimestamp; foreach (var activePeriod in alert.ActivePeriods) { var activePeriodRow = existingAlert.Getrt_alert_active_periodRows() .FirstOrDefault(x => x.active_period_start == (int)activePeriod.ActivePeriodStart); if (activePeriodRow == null) { continue; } if (activePeriod.ActivePeriodEnd > 0) { activePeriodRow.active_period_end = (int)activePeriod.ActivePeriodEnd; } else if (!activePeriodRow.Isactive_period_endNull()) { activePeriodRow.Setactive_period_endNull(); } } }