mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 23:25:53 +08:00
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:
committed by
Roland Winklmeier
parent
610dba2028
commit
0846a8773a
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user