public async Task Consume(ConsumeContext <IStudentDeleted> context)
        {
            await _opticalFormRepository
            .DeleteByStudentIdAsync(context.Message.StudentId);

            var examIds = await _opticalFormRepository.GetExamIdsAsync(
                f => f.StudentId, context.Message.StudentId);

            foreach (var examId in examIds)
            {
                await _evaluateExamConsumer?.ConsumeAsync(examId);
            }
        }
        public async Task Consume(ConsumeContext <IClassroomDeleted> context)
        {
            await _studentOpticalFormRepository
            .DeleteByClassroomIdAsync(context.Message.ClassroomId);

            var examIds = await _studentOpticalFormRepository.GetExamIdsAsync(
                f => f.ClassroomId, context.Message.ClassroomId);

            if (_evaluateExamConsumer != null)
            {
                foreach (var examId in examIds)
                {
                    await _evaluateExamConsumer.ConsumeAsync(examId);
                }
            }
        }
Esempio n. 3
0
        public async Task Consume(ConsumeContext <IReEvaluateMultipleExams> context)
        {
            var stopwatch = Stopwatch.StartNew();

            foreach (var examId in context.Message.ExamIds)
            {
                try
                {
                    await _evaluateExamConsumer.ConsumeAsync(examId);
                }
                catch (Exception ex)
                {
                    _logger.LogError($"Exception while evaluating exam with ID:{examId} : {ex}");
                }
            }

            stopwatch.Stop();
            _logger.LogWarning(
                $"{context.Message.ExamIds.Count()} amount of exams re-evaluated in {stopwatch.Elapsed.TotalSeconds:F1} seconds");
        }
        public async Task Consume(ConsumeContext <IExamUpdated> context)
        {
            var forms = context.Message.AnswerKeyOpticalForms;

            foreach (var form in forms)
            {
                form.ExamId   = context.Message.ExamId;
                form.ExamDate = context.Message.ExamDate;
                form.ExamName = context.Message.ExamName;
                form.IncorrectEliminationRate = context.Message.IncorrectEliminationRate;
            }

            await _opticalFormRepository.DeleteAnswerKeyOpticalFormsByExamIdAsync(context.Message.ExamId);

            await _opticalFormRepository.AddManyAsync(forms);

            if (_evaluateExamConsumer != null)
            {
                await _evaluateExamConsumer.ConsumeAsync(context.Message.ExamId);
            }
        }