diff --git a/src/blackmisc/db/distributionlist.cpp b/src/blackmisc/db/distributionlist.cpp index e2c0360cc..abc662fc7 100644 --- a/src/blackmisc/db/distributionlist.cpp +++ b/src/blackmisc/db/distributionlist.cpp @@ -36,6 +36,30 @@ namespace BlackMisc return this->findFirstByOrDefault(&CDistribution::getChannel, channel); } + QString CDistributionList::getVersionForChannelAndPlatform(const QString &channel, const QString &platform) const + { + const CDistribution dist = this->findByChannelOrDefault(channel); + return dist.getVersionString(platform); + } + + QVersionNumber CDistributionList::getQVersionForChannelAndPlatform(const QString &channel, const QString &platform) const + { + const CDistribution dist = this->findByChannelOrDefault(channel); + return dist.getQVersion(platform); + } + + QString CDistributionList::getVersionForChannelAndPlatform(const QStringList &channelPlatform) const + { + Q_ASSERT_X(channelPlatform.length() != 2, Q_FUNC_INFO, "Wrong size"); + return this->getVersionForChannelAndPlatform(channelPlatform.first(), channelPlatform.last()); + } + + QVersionNumber CDistributionList::getQVersionForChannelAndPlatform(const QStringList &channelPlatform) const + { + Q_ASSERT_X(channelPlatform.length() == 2, Q_FUNC_INFO, "Wrong size"); + return this->getQVersionForChannelAndPlatform(channelPlatform.first(), channelPlatform.last()); + } + CDistributionList CDistributionList::fromDatabaseJson(const QJsonArray &array) { CDistributionList distributions; diff --git a/src/blackmisc/db/distributionlist.h b/src/blackmisc/db/distributionlist.h index c8f0a63de..355bc444b 100644 --- a/src/blackmisc/db/distributionlist.h +++ b/src/blackmisc/db/distributionlist.h @@ -45,6 +45,18 @@ namespace BlackMisc //! Find distribution by channels CDistribution findByChannelOrDefault(const QString &channel) const; + //! Version for specific channel and platform + QString getVersionForChannelAndPlatform(const QString &channel, const QString &platform) const; + + //! Version for specific channel and platform + QVersionNumber getQVersionForChannelAndPlatform(const QString &channel, const QString &platform) const; + + //! Version for specific channel and platform + QString getVersionForChannelAndPlatform(const QStringList &channelPlatform) const; + + //! Version for specific channel and platform + QVersionNumber getQVersionForChannelAndPlatform(const QStringList &channelPlatform) const; + //! From database JSON static CDistributionList fromDatabaseJson(const QJsonArray &array); };