private static void InsertAlert(AlertData alert,
                                        rt_alertRow existingAlert,
                                        rt_alertDataTable alertDataTable,
                                        rt_alert_active_periodDataTable activePeriodDataTable,
                                        rt_alert_informed_entityDataTable informedEntityDataTable)
        {
            var newAlertRow = alertDataTable.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;

            alertDataTable.Rows.Add(newAlertRow);
            //Console.WriteLine("*Alert: " + newAlertRow.Alert);

            foreach (var activePeriod in alert.ActivePeriods)
            {
                var newActivePeriodRow = activePeriodDataTable.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;

                activePeriodDataTable.Rows.Add(newActivePeriodRow);
                //Console.WriteLine(" *Active Period: " + newActivePeriodRow.ActivePeriod);
            }

            foreach (var informedEntity in alert.InformedEntities)
            {
                var newInformedEntityRow = informedEntityDataTable.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;
                }

                informedEntityDataTable.Rows.Add(newInformedEntityRow);
                //Console.WriteLine(" *Informed Entity: " + newInformedEntityRow.InformedEntity);
            }
        }