File indexing completed on 2024-05-05 05:40:34

0001 #include "network/timeaccepter.h"
0002 #include <QDateTime>
0003 #include <QDebug>
0004 #include <QTime>
0005 
0006 TimeAccepter::TimeAccepter() {}
0007 
0008 bool TimeAccepter::isValid(const QMap<QString, QVariant>& data) const
0009 {
0010     auto startStr= data["TimeStart"].toString();
0011     auto endStr= data["TimeEnd"].toString();
0012 
0013     if(startStr.isEmpty() || endStr.isEmpty())
0014         return true;
0015 
0016     QDateTime time= QDateTime::currentDateTime();
0017     const QString format= QStringLiteral("hh:mm");
0018 
0019     QTime start= QTime::fromString(startStr, format);
0020     QTime end= QTime::fromString(endStr, format);
0021     QDateTime dateStart;
0022     dateStart.setDate(time.date());
0023     dateStart.setTime(start);
0024     QDateTime dateEnd;
0025     dateEnd.setDate(time.date());
0026     dateEnd.setTime(end);
0027 
0028     if(dateEnd < dateStart)
0029         dateEnd= dateEnd.addDays(1);
0030 
0031     bool result= true;
0032 
0033     if(dateStart.isValid() && dateEnd.isValid() && ((time < dateStart) || (time > dateEnd)))
0034     {
0035         result= false;
0036         qInfo() << QStringLiteral("Connection out of time slot. Connection refused");
0037     }
0038     return result;
0039 }