Пример #1
0
        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);
        }