示例#1
0
        public async Task <bool> ProcessDocumentAsync(ProcessDocumentRequest request, bool isLargeFile, IAsyncCollector <Message> messages)
        {
            try
            {
                ProcessDocumentMessage processDocumentMessage;

                if (isLargeFile)
                {
                    var documentId = $"{request.Id}-{Guid.NewGuid():N}";

                    await _blobService.UploadBlobAsync(documentId, JsonConvert.SerializeObject(request));

                    processDocumentMessage = new ProcessDocumentMessage
                    {
                        RequestReferenceId = documentId
                    };
                }
                else
                {
                    processDocumentMessage = new ProcessDocumentMessage
                    {
                        Request = request
                    };
                }

                var message = new Message(Encoding.Default.GetBytes(JsonConvert.SerializeObject(processDocumentMessage)));
                message.UserProperties.Add("DocumentType", request.DocumentType.ToString());

                await messages.AddAsync(message);

                return(true);
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, "Error when processing the document.");
            }

            return(false);
        }
示例#2
0
 public void OnCompletedProcessDocumentJobDueToMissingDocument(ProcessDocumentMessage processDocumentMessage)
 {
     Log(new { processDocumentMessage });
 }