refs #755, validation also for "distributors from DB"

* validation now in webdataservices (so it can check against DB data)
* utility functions
This commit is contained in:
Klaus Basan
2016-09-04 18:35:00 +02:00
committed by Roland Winklmeier
parent 610dba2028
commit 0846a8773a
9 changed files with 97 additions and 20 deletions

View File

@@ -243,7 +243,7 @@ namespace BlackMisc
if (distributors.isEmpty()) { return CAircraftModelList(); }
return this->findBy([ = ](const CAircraftModel & model)
{
return model.matchesAnyDistributor(distributors);
return model.matchesAnyDbDistributor(distributors);
});
}
@@ -565,6 +565,37 @@ namespace BlackMisc
return msgs;
}
CStatusMessageList CAircraftModelList::validateDistributors(const CDistributorList &distributors, CAircraftModelList &validModels, CAircraftModelList &invalidModels) const
{
CStatusMessageList msgs;
CDistributorList distributorsFromDb(distributors);
distributorsFromDb.removeIfNotLoadedFromDb();
// Any DB distributors?
if (distributorsFromDb.isEmpty())
{
const CStatusMessage msg = CStatusMessage(this).validationError("No DB distributors for validation");
msgs.push_back(msg);
invalidModels.push_back(*this);
return msgs;
}
for (const CAircraftModel &model : *this)
{
if (model.hasDbDistributor() || model.matchesAnyDbDistributor(distributorsFromDb))
{
validModels.push_back(model);
}
else
{
const CStatusMessage msg = CStatusMessage(this).validationError("No valid distributor for '%1', was '%2'") << model.getModelString() << model.getDistributor().getDbKey();
msgs.push_back(msg);
invalidModels.push_back(model);
}
}
return msgs;
}
QJsonArray CAircraftModelList::toDatabaseJson() const
{
QJsonArray array;