public async Task <CheckMrzStatusResponseModel> CheckMrzTaskStatusAsync(CheckMrzStatusRequestModel requestModel) { var mrzStatusRequest = _mapper.Map <MrzStatusRequest>(requestModel); var mrzStatusResponse = _mrzProcessor.GetMrzTaskStatus(mrzStatusRequest); var entity = await _kycRepository.GetByKycIdAsync(requestModel.KycId); entity.Status = mrzStatusResponse.IsMrzCompleted ? KycStatus.MrzPassed : KycStatus.MrzFailed; await _kycRepository.UpdateAsync(entity); var responseModel = _mapper.Map <CheckMrzStatusResponseModel>(mrzStatusResponse); responseModel.UserId = requestModel.UserId; responseModel.KycId = requestModel.KycId; if (mrzStatusResponse.IsMrzCompleted) { // Send Kafka Message var kafkaMessage = new KafkaMessage <string, CheckMrzStatusResponseModel> { Key = Guid.NewGuid().ToString(), Value = responseModel, MessageType = nameof(CheckMrzStatusResponseModel) }; await _checkMrzStatusProducer.ProduceAsync(kafkaMessage); } return(responseModel); }