public async Task UpdateProductInIdentifyService([QueueTrigger(QueueNames.UpdateProduct, Connection = "StorageProdIden")] UpdateProductMessage message, ILogger log) { var product = await _productRepository.Get(message.ProductId); var folder = product.StoragePathVerified(); var fileNames = await _fileRepository.FileNamesList(folder); if (!fileNames.Any()) { throw new Exception($"There are no verified files in folder: [{folder}] for product: [{product.Id}]"); } var images = new List <Stream>(); foreach (var fileName in fileNames) { var file = await _fileRepository.GetFileContentAsync(folder, fileName); images.Add(file); } await _productIdentifyService.UpdateProduct(images, product); var productTrainingModel = new ProductTrainingModel(message.ProductId); _productTrainingRepository.Add(productTrainingModel); foreach (var fileName in fileNames) { await _fileRepository.CopyFile(folder, product.StoragePathAddedAfterVerification(), fileName); } }
public async Task <Result <GetProductResponse> > Handle(UpdateProductRequest request, CancellationToken cancellationToken) { var updateProductMessage = new UpdateProductMessage { CorrelationId = request.CorrelationId, ProductCode = request.ProductCode, ProductName = request.ProductName }; var operation = await _mediator.Send(updateProductMessage, cancellationToken); if (operation.Status) { return(Result <GetProductResponse> .Success(new GetProductResponse { ProductCode = request.ProductCode, ProductName = request.ProductName })); } return(Result <GetProductResponse> .Failure(operation.ErrorCode, operation.Validation)); }