private GetEnrolmentsByUserIdResponse SendDisciplina(InternalMoodleData moodleData) { Enrol(moodleData); GetEnrolmentsByUserIdResponse response = GetUserEnrolment(moodleData); return(response); }
private void Enrol(InternalMoodleData data) { EnrolmentClient client = EnrolmentClient; BuildMoodleClient(client, MoodleTokenType.OfficialMoodleApiFunctions); EnrolmentRequest request = new EnrolmentRequest() { CourseId = data.MoodleCourseId, UserId = data.MoodleUserId, RoleId = Constantes.ROLEID_PROFESSOR }; Task <EmptyResponse> task = client.Post(request); task.Wait(); LastUrl = client.LastUrl; }
private GetEnrolmentsByUserIdResponse GetUserEnrolment(InternalMoodleData moodleData) { GetEnrolementsrByUserIdClient client = GetEnrolementsrByUserIdClient; BuildMoodleClient(client, MoodleTokenType.LocalMoodleExternalApiGetInfoToken); GetEnrolmentsByUserIdRequest request = new GetEnrolmentsByUserIdRequest() { UserId = moodleData.MoodleUserId, CategoryId = moodleData.MoodleCategoryId, CourseId = moodleData.MoodleCourseId, RoleId = Constantes.ROLEID_ALUNO }; Task <GetEnrolmentsByUserIdResponse> task = client.Post(request); task.Wait(); GetEnrolmentsByUserIdResponse response = task.Result; return(response); }
protected void ProcessDisciplina(Professor professor, Disciplina disciplina, AbstractMoodleServiceClient createClient, AbstractMoodleServiceClient verifyClient) { disciplina.DisciplinaNome = disciplina.GetNomeDisciplina(Configuration, ModalidadeAtual); disciplina.ShortName = disciplina.GetShortNameDisciplina(Configuration, ModalidadeAtual); try { InternalMoodleData moodleData = VerifyIfExistsOnMoodleAndCreateIfDont(professor, disciplina); GetEnrolmentsByUserIdResponse response = null; if (moodleData?.MoodleCategoryId > 0 && moodleData?.MoodleCourseId > 0 && moodleData?.MoodleUserId > 0) { response = SendDisciplina(moodleData); } ProfessorDisciplinaImportedResult <ProfessorDisciplinaViewModel, GetEnrolmentsByUserIdResponse> importedResult = new ProfessorDisciplinaImportedResult <ProfessorDisciplinaViewModel, GetEnrolmentsByUserIdResponse>() { Date = DateTime.Now, Url = LastUrl, Professor = professor, Disciplina = disciplina, Result = response }; Result.ImportedSuccessfully.Enqueue(importedResult); Log($"Disciplina [{disciplina.DisciplinaNome}] do professor [{professor.ProfessorCpf} | {professor.ProfessorNome}] adicionada."); } catch (MoodleDataNotExistsException mex) { var reason = new ProfessorDisciplinaNotImportedReason <ProfessorDisciplinaViewModel>() { Url = LastUrl, Professor = professor, Disciplina = disciplina, Reason = mex.Message }; Result.NotImported.Enqueue(reason); Log(reason.Reason); } catch (AggregateException agex) { var exception = agex.InnerExceptions[0]; var reason = new ProfessorDisciplinaNotImportedReason <ProfessorDisciplinaViewModel>() { Url = LastUrl, Professor = professor, Disciplina = disciplina, Exception = exception, Reason = exception.Message }; Result.NotImported.Enqueue(reason); Log(reason.Reason); } catch (Exception ex) { var reason = new ProfessorDisciplinaNotImportedReason <ProfessorDisciplinaViewModel>() { Url = LastUrl, Professor = professor, Disciplina = disciplina, Exception = ex, Reason = ex.Message }; Result.NotImported.Enqueue(reason); Log(reason.Reason); } }
protected void ProcessDisciplina(Aluno aluno, Disciplina disciplina, AbstractMoodleServiceClient createClient, AbstractMoodleServiceClient verifyClient) { if (disciplina?.IdDisciplina == 0 || string.IsNullOrEmpty(disciplina?.DisciplinaNome)) { return; } disciplina.DisciplinaNome = disciplina.GetNomeDisciplina(Configuration, ModalidadeAtual); disciplina.ShortName = disciplina.GetShortNameDisciplina(Configuration, ModalidadeAtual); try { InternalMoodleData moodleData = VerifyIfExistsOnMoodleAndCreateIfDont(aluno, disciplina); GetEnrolmentsByUserIdResponse response = null; if (moodleData?.MoodleCategoryId > 0 && moodleData?.MoodleCourseId > 0 && moodleData?.MoodleUserId > 0) { response = SendDisciplina(moodleData); } AlunoDisciplinaImportedResult <AlunoDisciplinaViewModel, GetEnrolmentsByUserIdResponse> importedResult = new AlunoDisciplinaImportedResult <AlunoDisciplinaViewModel, GetEnrolmentsByUserIdResponse>() { Date = DateTime.Now, Aluno = aluno, Disciplina = disciplina, Url = LastUrl, Result = response }; Result.ImportedSuccessfully.Enqueue(importedResult); Log($"Disciplina {disciplina.DisciplinaNome} do aluno {aluno.AlunoNomeSocial ?? aluno.AlunoNome} adicionada."); } catch (MoodleDataNotExistsException mex) { var reason = new AlunoDisciplinaNotImportedReason <AlunoDisciplinaViewModel>() { Url = LastUrl, Aluno = aluno, Disciplina = disciplina, Reason = mex.Message }; Result.NotImported.Enqueue(reason); Log($"Disciplina {disciplina.DisciplinaNome} não adicionada. {reason.Reason}"); } catch (AggregateException agex) { var exception = agex.InnerExceptions[0]; var reason = new AlunoDisciplinaNotImportedReason <AlunoDisciplinaViewModel>() { Url = LastUrl, Aluno = aluno, Disciplina = disciplina, Exception = exception, Reason = exception.Message }; Result.NotImported.Enqueue(reason); if (exception is MoodleResponseException moodleEx) { Log($"Disciplina {disciplina.DisciplinaNome} não adicionada. {moodleEx.RawMoodleError}"); } else { Log($"Disciplina {disciplina.DisciplinaNome} não adicionada. {reason.Reason}"); } } catch (Exception ex) { var reason = new AlunoDisciplinaNotImportedReason <AlunoDisciplinaViewModel>() { Url = LastUrl, Aluno = aluno, Disciplina = disciplina, Exception = ex, Reason = ex.Message }; Result.NotImported.Enqueue(reason); Log($"Disciplina {disciplina.DisciplinaNome} não adicionada. {reason.Reason}"); } }