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); } } }
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); } }