diff --git a/ServerLMS/Systems/processingsystem.cpp b/ServerLMS/Systems/processingsystem.cpp index 0858461..09d7415 100644 --- a/ServerLMS/Systems/processingsystem.cpp +++ b/ServerLMS/Systems/processingsystem.cpp @@ -86,7 +86,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien client->sendXmlAnswer(arrayAnswer); client->sendVersion(); - //Отправка списка задач клиенту Юнити + //Отправка списков задач клиенту Юнити if(client->getClient()->getIsUnity()) { QString login = client->getClient()->getLogin(); @@ -257,6 +257,27 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu { int id_new; id_new = providerDBLMS->newTaskAMM(*(TaskAmmFim*)data, id); + + if(id_new) + {//Отправка списка задач AMM клиенту Юнити + QString login = providerDBLMS->getLoginTraineeById(id); + //Проходим все открытые сокеты, ищем нужный + foreach(int idSocket, server->getClientsMap().keys()) + { + ClientHandler *handler = server->getClientsMap().value(idSocket); + if(handler->getClient()->getLogin() == login) + { + if(handler->getClient()->getIsUnity()) + {//Отправляем ему + //AMM + QList listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id); + QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id); + handler->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE); + } + } + } + } + /* if(id_new) { @@ -282,6 +303,26 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu int id_new; id_new = providerDBLMS->newTaskFIM(*(TaskAmmFim*)data, id); + if(id_new) + {//Отправка списка задач FIM клиенту Юнити + QString login = providerDBLMS->getLoginTraineeById(id); + //Проходим все открытые сокеты, ищем нужный + foreach(int idSocket, server->getClientsMap().keys()) + { + ClientHandler *handler = server->getClientsMap().value(idSocket); + if(handler->getClient()->getLogin() == login) + { + if(handler->getClient()->getIsUnity()) + {//Отправляем ему + //FIM + QList listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id); + QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id); + handler->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_FOR_TRAINEE); + } + } + } + } + /* if(id_new) { diff --git a/ServerLMS/providerdblms.cpp b/ServerLMS/providerdblms.cpp index cc42116..3372bd6 100644 --- a/ServerLMS/providerdblms.cpp +++ b/ServerLMS/providerdblms.cpp @@ -240,6 +240,24 @@ int ProviderDBLMS::getIdTraineeByLogin(QString login) 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; diff --git a/ServerLMS/providerdblms.h b/ServerLMS/providerdblms.h index 3962a8b..38f0b37 100644 --- a/ServerLMS/providerdblms.h +++ b/ServerLMS/providerdblms.h @@ -30,6 +30,7 @@ public: // int getIdTraineeByLogin(QString login); + QString getLoginTraineeById(int id_trainee); QList GetListAllInstructors(); QList GetListAllTrainees();