From 01d145292c9acab388751edc08e0a86c62c45e9f Mon Sep 17 00:00:00 2001 From: Philipp Spitzer Date: Wed, 27 Sep 2017 22:35:59 +0200 Subject: [PATCH] The ID of an event is checked now when importing the XML file. --- src/sql/schedulexmlparser.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/sql/schedulexmlparser.cpp b/src/sql/schedulexmlparser.cpp index 15e3861..bba8626 100644 --- a/src/sql/schedulexmlparser.cpp +++ b/src/sql/schedulexmlparser.cpp @@ -38,6 +38,15 @@ public: }; +void checkEvent(QHash& event) { + QString event_id = event["id"]; + if (event_id.trimmed().isEmpty()) throw ParseException(QObject::tr("The ID of event '%1' is missing.").arg(event["title"])); + bool ok; + event_id.toInt(&ok); + if (!ok) throw ParseException(QObject::tr("The ID '%2' of event '%1' is not numeric.").arg(event["title"]).arg(event_id)); +} + + void ScheduleXmlParser::parseDataImpl(const QByteArray &aData, const QString& url, int conferenceId) { QDomDocument document; QString xml_error; @@ -115,7 +124,7 @@ void ScheduleXmlParser::parseDataImpl(const QByteArray &aData, const QString& ur // process event's nodes QHash event; - event["id"] = eventElement.attribute("id");; + event["id"] = eventElement.attribute("id"); event["conference_id"] = QString::number(conferenceId, 10); QTime event_start = QTime::fromString(eventElement.firstChildElement("start").text(), sqlEngine->TIME_FORMAT); event["start"] = event_start.toString(sqlEngine->TIME_FORMAT); // time eg. 10:00 @@ -139,6 +148,7 @@ void ScheduleXmlParser::parseDataImpl(const QByteArray &aData, const QString& ur event["language"] = eventElement.firstChildElement("language").text(); // language eg. "English" event["abstract"] = eventElement.firstChildElement("abstract").text(); // string event["description"] = eventElement.firstChildElement("description").text(); // string + checkEvent(event); sqlEngine->addEventToDB(event); // process persons' nodes QDomElement personsElement = eventElement.firstChildElement("persons"); -- 2.39.5