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 } }); }
public static string EncodeString(this string str, byte[] key) { var data = Encoding.UTF8.GetBytes(str); var result = AesEncodeDecode.Encode(data, key); return(result.ToHexString()); }
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()); }
public static string DecodeString(this string str, byte[] key) { var data = str.HexStringToByteArray(); return(Encoding.UTF8.GetString(AesEncodeDecode.Decode(data, key))); }