#include "providerdblms.h" #include ProviderDBLMS::ProviderDBLMS(QWidget *parentWidget, QObject *parent) : QObject(parent), dbLMS(nullptr) { dbLMS = new InterfaceDataBaseLMS(parentWidget); //ConnectionToDB(); } ProviderDBLMS::~ProviderDBLMS() { DisConnectionFromDB(); } void ProviderDBLMS::ConnectionToDB() { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { if(dbLMS->ConnectionToDB()) { Q_EMIT signal_BlockAutorization(false); //Q_EMIT signal_NeedUpdateUI(true, true); } } mtxAccess.unlock(); } void ProviderDBLMS::DisConnectionFromDB() { mtxAccess.lock(); if(dbLMS->DBisConnected()) { Q_EMIT signal_BlockAutorization(true); dbLMS->DisConnectionFromDB(); //Q_EMIT signal_NeedUpdateUI(true, true); } mtxAccess.unlock(); } QString ProviderDBLMS::getMainInstructorName() { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return QStringLiteral(""); } //QString res = dbLMS->getNameInstructorByLogin(loginInstructorLoggedInLocal); mtxAccess.unlock(); //return res; return QStringLiteral(""); } bool ProviderDBLMS::authorizationTrainee(QString login, QString password, QString classroom_name, QString computer_name) { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return false; } Q_EMIT signal_BlockAutorization(true); bool res = dbLMS->AuthorizationTrainee(login, password, classroom_name, computer_name); Q_EMIT signal_BlockAutorization(false); //if(res) //Q_EMIT signal_NeedUpdateUI(false, true); mtxAccess.unlock(); return res; } bool ProviderDBLMS::deAuthorizationTrainee(QString login) { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return false; } Q_EMIT signal_BlockAutorization(true); bool res = dbLMS->deAuthorizationTrainee(login); Q_EMIT signal_BlockAutorization(false); //if(res) //Q_EMIT signal_NeedUpdateUI(false, true); mtxAccess.unlock(); return res; } QString ProviderDBLMS::getNameTraineeByLogin(QString login) { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return QStringLiteral(""); } QString res = dbLMS->getNameTraineeByLogin(login); mtxAccess.unlock(); return res; } bool ProviderDBLMS::authorizationInstructor(QString login, QString password) { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return false; } Q_EMIT signal_BlockAutorization(true); bool res = dbLMS->AuthorizationInstructor(login, password); Q_EMIT signal_BlockAutorization(false); //if(res) //Q_EMIT signal_NeedUpdateUI(true, false); mtxAccess.unlock(); return res; } bool ProviderDBLMS::deAuthorizationInstructor(QString login) { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return false; } Q_EMIT signal_BlockAutorization(true); bool res = dbLMS->deAuthorizationInstructor(login); Q_EMIT signal_BlockAutorization(false); /* if(res) { if(loginInstructorLoggedInLocal == login) { loginInstructorLoggedInLocal = QStringLiteral(""); adminMode = false; viewerInstructors->setAdminMode(adminMode); viewerTrainees->setAdminMode(adminMode); viewerInstructors->setAuthComplited(false); viewerTrainees->setAuthComplited(false); Q_EMIT signal_NeedUpdateUI(true, false); } else Q_EMIT signal_NeedUpdateUI(true, false); }*/ mtxAccess.unlock(); return res; } QString ProviderDBLMS::getNameInstructorByLogin(QString login) { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return QStringLiteral(""); } QString res = dbLMS->getNameInstructorByLogin(login); mtxAccess.unlock(); return res; } bool ProviderDBLMS::deAuthorizationAll() { mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return false; } Q_EMIT signal_BlockAutorization(true); bool res1 = dbLMS->deAuthorizationAllTrainees(); bool res2 = dbLMS->deAuthorizationAllInstructors(); Q_EMIT signal_BlockAutorization(false); mtxAccess.unlock(); return res1 && res2; } int ProviderDBLMS::getIdTraineeByLogin(QString login) { int id_trainee = 0; qDebug() << "ProviderDBLMS " << QThread::currentThreadId(); mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return id_trainee; } id_trainee = dbLMS->getIdTraineeByLogin(login); mtxAccess.unlock(); return id_trainee; } QString ProviderDBLMS::getLoginTraineeById(int id_trainee) { QString login = ""; qDebug() << "ProviderDBLMS " << QThread::currentThreadId(); mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return login; } login = dbLMS->getTrainee(id_trainee).getLogin(); mtxAccess.unlock(); return login; } QList ProviderDBLMS::GetListAllInstructors() { QList listInstructors; qDebug() << "ProviderDBLMS " << QThread::currentThreadId(); mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return listInstructors; } listInstructors = dbLMS->getListInstructors(); mtxAccess.unlock(); return listInstructors; } QList ProviderDBLMS::GetListAllTrainees() { QList listTrainees; mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return listTrainees; } listTrainees = dbLMS->getListTrainees(); mtxAccess.unlock(); return listTrainees; } QList ProviderDBLMS::GetListAllGroups() { QList listGroups; mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return listGroups; } listGroups = dbLMS->getListGroups(); mtxAccess.unlock(); return listGroups; } int ProviderDBLMS::newInstructor() { return dbLMS->newInstructor(); } int ProviderDBLMS::delInstructor(int id) { return dbLMS->delInstructor(id); } int ProviderDBLMS::editInstructor(Instructor instructor) { return dbLMS->editInstructor(instructor); } int ProviderDBLMS::newTrainee(int id_group) { return dbLMS->newTrainee(id_group); } int ProviderDBLMS::delTrainee(int id) { return dbLMS->delTrainee(id); } int ProviderDBLMS::editTrainee(Trainee trainee) { return dbLMS->editTrainee(trainee); } int ProviderDBLMS::newGroup() { return dbLMS->newGroup(); } int ProviderDBLMS::delGroup(int id) { return dbLMS->delGroup(id); } int ProviderDBLMS::editGroup(Group group) { return dbLMS->editGroup(group); } int ProviderDBLMS::newTaskAMM(TaskAmmFim task, int id_trainee) { return dbLMS->newTaskAMM(task, id_trainee); } int ProviderDBLMS::delTaskAMM(int id) { return dbLMS->delTaskAMM(id); } int ProviderDBLMS::editTaskAMM(TaskAmmFim task) { return dbLMS->editTaskAMM(task); } int ProviderDBLMS::editStatusTaskAMM(int task_id, QString status) { return dbLMS->editStatusTaskAMM(task_id, status); } int ProviderDBLMS::newTaskFIM(TaskAmmFim task, int id_trainee) { return dbLMS->newTaskFIM(task, id_trainee); } int ProviderDBLMS::delTaskFIM(int id) { return dbLMS->delTaskFIM(id); } int ProviderDBLMS::editTaskFIM(TaskAmmFim task) { return dbLMS->editTaskFIM(task); } int ProviderDBLMS::editStatusTaskFIM(int task_id, QString status) { return dbLMS->editStatusTaskFIM(task_id, status); } int ProviderDBLMS::replaceReportFIM(TaskAmmFim task) { return dbLMS->replaceReportFIM(task); } QList ProviderDBLMS::GetListTasksAMMofTrainee(int id_trainee) { QList listTasks; mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return listTasks; } listTasks = dbLMS->getListTasksAMMofTrainee(id_trainee); mtxAccess.unlock(); return listTasks; } QList ProviderDBLMS::GetListTasksFIMofTrainee(int id_trainee) { QList listTasks; mtxAccess.lock(); if(! dbLMS->DBisConnected()) { mtxAccess.unlock(); return listTasks; } listTasks = dbLMS->getListTasksFIMofTrainee(id_trainee); mtxAccess.unlock(); return listTasks; }