Ref T104, return inconsistent aircraft/airline ICAOs codes

- use audit
- and log inconsistent DB entries
This commit is contained in:
Klaus Basan
2017-07-08 20:33:48 +02:00
committed by Mathew Sutcliffe
parent 922e39f61d
commit 297c2f0539
6 changed files with 56 additions and 22 deletions

View File

@@ -87,7 +87,7 @@ namespace BlackMisc
CAircraftIcaoCodeList CAircraftIcaoCodeList::findEndingWith(const QString &icaoEnding) const
{
QString ends = icaoEnding.trimmed().toUpper();
const QString ends = icaoEnding.trimmed().toUpper();
if (ends.isEmpty()) { return CAircraftIcaoCodeList(); }
CAircraftIcaoCodeList icaosDesignator;
CAircraftIcaoCodeList icaosFamily;
@@ -317,16 +317,29 @@ namespace BlackMisc
return max;
}
CAircraftIcaoCodeList CAircraftIcaoCodeList::fromDatabaseJson(const QJsonArray &array, bool ignoreIncompleteAndDuplicates)
CAircraftIcaoCodeList CAircraftIcaoCodeList::fromDatabaseJson(const QJsonArray &array, bool ignoreIncompleteAndDuplicates, CAircraftIcaoCodeList *inconsistent)
{
CAircraftIcaoCodeList codes;
for (const QJsonValue &value : array)
{
const CAircraftIcaoCode icao(CAircraftIcaoCode::fromDatabaseJson(value.toObject()));
if (ignoreIncompleteAndDuplicates)
if (!icao.hasSpecialDesignator() && !icao.hasCompleteData())
{
if (!icao.hasSpecialDesignator() && !icao.hasCompleteData()) { continue; }
if (icao.isDbDuplicate()) { continue; }
if (ignoreIncompleteAndDuplicates) { continue; }
if (inconsistent)
{
inconsistent->push_back(icao);
continue;
}
}
if (icao.isDbDuplicate())
{
if (ignoreIncompleteAndDuplicates) { continue; }
if (inconsistent)
{
inconsistent->push_back(icao);
continue;
}
}
codes.push_back(icao);
}

View File

@@ -135,7 +135,7 @@ namespace BlackMisc
QPair<QString, int> maxCountManufacturer() const;
//! From our database JSON format
static CAircraftIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncompleteAndDuplicates = true);
static CAircraftIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncompleteAndDuplicates = true, CAircraftIcaoCodeList *inconsistent = nullptr);
};
} //namespace
} // namespace

View File

@@ -185,15 +185,21 @@ namespace BlackMisc
return airlineCode;
}
CAirlineIcaoCodeList CAirlineIcaoCodeList::fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete)
CAirlineIcaoCodeList CAirlineIcaoCodeList::fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete, CAirlineIcaoCodeList *inconsistent)
{
CAirlineIcaoCodeList codes;
for (const QJsonValue &value : array)
{
const CAirlineIcaoCode icao(CAirlineIcaoCode::fromDatabaseJson(value.toObject()));
if (ignoreIncomplete && !icao.hasCompleteData())
const bool incomplete = !icao.hasCompleteData();
if (incomplete)
{
continue;
if (ignoreIncomplete) { continue; }
if (inconsistent)
{
inconsistent->push_back(icao);
continue;
}
}
codes.push_back(icao);
}

View File

@@ -96,7 +96,7 @@ namespace BlackMisc
QStringList toNameCompleterStrings(bool sort = true) const;
//! From our DB JSON
static CAirlineIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true);
static CAirlineIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true, CAirlineIcaoCodeList *inconsistent = nullptr);
};
} //namespace
} // namespace