Exemple #1
0
        public async ValueTask <GetDocumentContentGrpcResponse> DownloadDocumentAsync(DocumentGrpcContract request)
        {
            var document = await ServiceLocator.TraderDocumentsPostgresRepository
                           .GetDocumentsAsync(request.TraderId, request.Id);

            if (document == null)
            {
                return
                    new GetDocumentContentGrpcResponse
                    {
                        DocumentContent = null
                    }
            }
            ;

            var fileContent = await ServiceLocator.AzureBlobContainer.DownloadBlobAsync(document.FileName);

            var encodedFileContent = AesEncodeDecode.Decode(fileContent.ToArray(), ServiceLocator.EncodingKey);

            return(new GetDocumentContentGrpcResponse
            {
                DocumentContent = new TraderDocumentContentGrpcModel
                {
                    Mime = document.Mime,
                    Data = encodedFileContent,
                    FileName = document.FileName
                }
            });
        }
Exemple #2
0
        public static string EncodeString(this string str, byte[] key)
        {
            var data = Encoding.UTF8.GetBytes(str);

            var result = AesEncodeDecode.Encode(data, key);

            return(result.ToHexString());
        }
Exemple #3
0
        public async ValueTask <TraderDocumentGrpcModel> SaveDocumentAsync(UploadDocumentGrpcContract request)
        {
            var model = request.ToDomain();

            await ServiceLocator.TraderDocumentsPostgresRepository.Add(model);

            var encodedFileContent = AesEncodeDecode.Encode(request.Data, ServiceLocator.EncodingKey);

            await ServiceLocator.AzureBlobContainer.UploadToBlobAsync(model.Id, encodedFileContent);

            // await ServiceLocator.AuditLogGrpcService.DispatchAuditLogsAction(request.TraderId, "kyc",
            //     model.Id,
            //     $"Trader uploaded a document with id: {model.Id}");

            return(model.ToGrpc());
        }
Exemple #4
0
        public static string DecodeString(this string str, byte[] key)
        {
            var data = str.HexStringToByteArray();

            return(Encoding.UTF8.GetString(AesEncodeDecode.Decode(data, key)));
        }