public async Task <IActionResult> GetConversion(string from, double quantity, string to)
        {
            try
            {
                var conversionRequest = new ConversionRequest
                {
                    From     = from,
                    Quantity = quantity,
                    To       = to
                };
                ConversionResult response = await _conversionClient.GetConversionAsync(conversionRequest);

                return(Ok(response));
            }
            catch (ArgumentNullException e)
            {
                _logger.LogInformation(e.Message);
                return(BadRequest(e.Message));
            }
            catch (RpcException e)
            {
                _logger.LogInformation(e.Message);
                return(NotFound(e.Status.Detail));
            }
        }
Exemple #2
0
        public void CanRetrieveSavedConversionRequest()
        {
            var network    = new SmartContractsPoARegTest();
            var dataFolder = TestBase.CreateDataFolder(this, network: network);

            var serializer = new DBreezeSerializer(network.Consensus.ConsensusFactory);
            var kvs        = new ConversionRequestKeyValueStore(dataFolder, serializer);

            var repo = new ConversionRequestRepository(kvs);

            var request = new ConversionRequest()
            {
                RequestId          = "requestId",
                RequestType        = ConversionRequestType.Mint,
                Processed          = false,
                RequestStatus      = ConversionRequestStatus.Unprocessed,
                Amount             = 100000000,
                BlockHeight        = 123,
                DestinationAddress = ""
            };

            repo.Save(request);

            var request2 = repo.Get(request.RequestId);

            Assert.Equal(request.RequestId, request2.RequestId);
            Assert.Equal(request.RequestType, request2.RequestType);
            Assert.Equal(request.Processed, request2.Processed);
            Assert.Equal(request.RequestStatus, request2.RequestStatus);
            Assert.Equal(request.Amount, request2.Amount);
            Assert.Equal(request.BlockHeight, request2.BlockHeight);
            Assert.Equal(request.DestinationAddress, request2.DestinationAddress);
        }
Exemple #3
0
 public override Task <ConversionReply> ConvertShoeSize(ConversionRequest request, ServerCallContext context)
 {
     return(Task.FromResult(new ConversionReply
     {
         Size = (Gender)request.Gender == Gender.Women ? ConvertWomenShoeSize(request.Size) : ConvertMenShoeSize(request.Size)
     }));
 }
Exemple #4
0
        public override async Task <ConversionResult> GetConversion(ConversionRequest request, ServerCallContext context)
        {
            ConversionResult baseConversion;

            try
            {
                baseConversion = await GetBaseConversion(request.From, request.Quantity);
            }
            catch (RpcException e)
            {
                Console.WriteLine(e);
                _logger.LogError(e.Message);
                throw new RpcException(e.Status);
            }

            ConversionResult conversionResult;

            try
            {
                conversionResult = await GetConversionResult(baseConversion, request.To);
            }
            catch (RpcException e)
            {
                Console.WriteLine(e);
                _logger.LogError(e.Message);
                throw new RpcException(e.Status);
            }

            return(conversionResult);
        }
Exemple #5
0
 DownloadConversionFilesResult DownloadConversionFiles(ConversionRequest request, string storageConnString, string decryptKey)
 {
     if (string.IsNullOrEmpty(decryptKey))
     {
         var msg = "AESKEY to encrypt/decrypt file is required.";
         return(DownloadConversionFilesResult.FailFast(msg));
     }
     try
     {
         var primaryFileContent = BlobHelper.DownloadFileToArrayByte(storageConnString, request.containerName, request.blobHeaderName, decryptKey);
         if (primaryFileContent == null)
         {
             var msg = $"Can't find the content of the BLOB file [{request.blobHeaderName}].";
             DownloadConversionFilesResult.FailFast(msg);
         }
         byte[] remittanceFileContent = null;
         if (!string.IsNullOrEmpty(request.blobDetailName))
         {
             remittanceFileContent = BlobHelper.DownloadFileToArrayByte(storageConnString, request.containerName, request.blobDetailName, decryptKey);
         }
         return(DownloadConversionFilesResult.Successful(primaryFileContent, remittanceFileContent));
     }
     catch (ApplicationException ex)
     {
         _logger.Error(ex.ToString());
         return(DownloadConversionFilesResult.FailFast(ex.Message));
     }
 }
Exemple #6
0
 bool ValidateRequest(ConversionRequest request, out string msg)
 {
     msg = string.Empty;
     if (request == null)
     {
         msg = "[blobHeaderName, blobOutputName, containerName] are required.";
         return(false);
     }
     request.containerName  = request.containerName?.Trim();
     request.blobHeaderName = request.blobHeaderName?.Trim();
     request.blobOutputName = request.blobOutputName?.Trim();
     if (string.IsNullOrEmpty(request.blobHeaderName))
     {
         msg = "Blob file input is required.";
         return(false);
     }
     if (string.IsNullOrEmpty(request.blobOutputName))
     {
         msg = "Blob file output is required.";
         return(false);
     }
     if (string.IsNullOrEmpty(request.containerName))
     {
         msg = "Blob container is required.";
         return(false);
     }
     return(true);
 }
Exemple #7
0
        public void Should_not_find_path_with_currencies_in_two_unconnected_graphs()
        {
            // ARRANGE
            // two unconnected graphs : EUR-ARS-UAH and CHF-RON-USD-BGN-JPY
            List <ExchangeRate> exchangeRates = new List <ExchangeRate> {
                new ExchangeRate("RON", "CHF", 0.2322m),
                new ExchangeRate("USD", "RON", 4.2841m),
                new ExchangeRate("USD", "CHF", 0.9946m),
                new ExchangeRate("EUR", "ARS", 65.9057m),
                new ExchangeRate("ARS", "UAH", 0.4229m),
                new ExchangeRate("UAH", "EUR", 0.0359m),
                new ExchangeRate("BGN", "JPY", 61.8563m),
                new ExchangeRate("BGN", "USD", 0.5677m)
            };

            var conversionRequest = new ConversionRequest("ARS", "JPY", 35);

            var mock = new Mock <IDijkstraService <string> >();

            mock.Setup(m => m.GetShortestPath(It.IsAny <Vertex <string> >(), It.IsAny <Vertex <string> >(), It.IsAny <Graph <string> >()))
            .Returns(new Dijkstra.Result.DijkstraShortestPathResult <string>(false, null));

            var svc = new DijkstraAdapter(mock.Object);

            // ACT
            var result = svc.Get(conversionRequest, exchangeRates);

            // ASSERT
            result.IsFound.Should().BeFalse();
            result.Path.Should().BeNull();
        }
Exemple #8
0
 /// <summary>
 /// Resolves the best media streams for the specified video, downloads them and processes into a single file.
 /// </summary>
 public static async ValueTask DownloadAsync(
     this VideoClient videoClient,
     VideoId videoId,
     ConversionRequest request,
     IProgress <double>?progress         = null,
     CancellationToken cancellationToken = default)
 {
Exemple #9
0
        public ShortestPathResult Get(ConversionRequest conversionRequest, IEnumerable <ExchangeRate> exchangeRates)
        {
            var             graph   = ToGraph(exchangeRates);
            Vertex <string> vSource = new Vertex <string>(conversionRequest.SourceCurrency);
            Vertex <string> vTarget = new Vertex <string>(conversionRequest.TargetCurrency);
            var             result  = _dijkstraService.GetShortestPath(vSource, vTarget, graph);

            return(ToShortestPathResult(result));
        }
Exemple #10
0
 public override void HandleConversion(ConversionRequest currentRequest)
 {
     if (currentRequest.Unit == "Mile")
     {
         currentRequest.Output = currentRequest.Input * 0.621371;
     }
     else
     {
         successor.HandleConversion(currentRequest);
     }
 }
Exemple #11
0
 public override void HandleConversion(ConversionRequest currentRequest)
 {
     if (currentRequest.Unit == "Foot")
     {
         currentRequest.Output = currentRequest.Input * 3280.84;
     }
     else
     {
         successor.HandleConversion(currentRequest);
     }
 }
Exemple #12
0
 public override void HandleConversion(ConversionRequest currentRequest)
 {
     if (currentRequest.Unit == "Yard")
     {
         currentRequest.Output = currentRequest.Input * 1093.61;
     }
     else
     {
         successor.HandleConversion(currentRequest);
     }
 }
        public ActionResult <ConversionRequest> GetExample()
        {
            ConversionRequest request = new ConversionRequest();

            request.FromUnitId = 1;
            request.ToUnitId   = 2;
            request.TypeId     = 3;
            request.Value      = 4;

            return(request);
        }
Exemple #14
0
 /// <summary>
 /// Downloads specified media streams and processes them into a single file.
 /// </summary>
 public static async ValueTask DownloadAsync(
     this VideoClient videoClient,
     IReadOnlyList <IStreamInfo> streamInfos,
     ConversionRequest request,
     IProgress <double>?progress         = null,
     CancellationToken cancellationToken = default) =>
 await videoClient.DownloadAsync(
     streamInfos,
     Array.Empty <ClosedCaptionTrackInfo>(),
     request,
     progress,
     cancellationToken
     );
        public Conversion CreateConversion(ConversionRequest conversionRequest, bool?overrideMaxCookieTime)
        {
            var url = GetRequestUrl("/conversions/");

            if (overrideMaxCookieTime != null)
            {
                url = AddQueryStringToUrl(url, "override_max_cookie_time", Convert.ToString(overrideMaxCookieTime));
            }

            var payLoad = JsonConvert.SerializeObject(conversionRequest);

            var response = HttpClient.PostAsync(url, new StringContent(payLoad)).Result;

            return(GetResponse <Conversion>(response));
        }
Exemple #16
0
        public static ConversionRequest convert(string from, string to, float amount)
        {
            var convertionRequest = new ConversionRequest();

            var data = DataSetup.setUpDummyData();

            var rate = data.First(x => x.currencyCode == from).convertionRate.First(x => x.currencyTo == to).rate;

            convertionRequest.currencyFrom    = from;
            convertionRequest.currencyTo      = to;
            convertionRequest.rate            = rate;
            convertionRequest.amountToChange  = amount;
            convertionRequest.amountConverted = amount * rate;

            return(convertionRequest);
        }
Exemple #17
0
        public IHttpActionResult Index(ConversionRequest model)
        {
            var request = new ConversionInfo {
                Amount = model.Amount, Name = model.Name
            };
            var result = _amountToTextService.Convert(request);

            if (result == null)
            {
                // or internal server ?
                return(BadRequest());
            }
            else
            {
                return(Ok(result));
            }
        }
 public ActionResult <ConversionRespond> Get([FromQuery] ConversionRequest request)
 {
     try
     {
         var output = _converter.AmountToString(request.Amount);
         return(Ok(new ConversionRespond
         {
             Name = request.Name,
             AmountString = output
         }));
     }
     catch (Exception e)
     {
         // TODO log here
         // log...
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
 }
        public ConversionResult Convert(ConversionRequest request, IEnumerable <ExchangeRate> exchangeRates)
        {
            var shorterPathResult = _shortestPathService.Get(request, exchangeRates);

            if (shorterPathResult.IsFound)
            {
                // Process the conversion request
                var convertedAmount = ApplyRates(request.Amount, exchangeRates, shorterPathResult.Path.ToList());

                // round
                convertedAmount = Math.Round(convertedAmount, MidpointRounding.AwayFromZero);
                return(new ConversionResult(true, Decimal.ToInt32(convertedAmount)));
            }
            else
            {
                return(new ConversionResult(false, null, ConversionErrorMessage.NoPath));
            }
        }
Exemple #20
0
        static async Task Main(string[] args)
        {
            var httpClientHandler = new HttpClientHandler();

            httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;

            var httpClient = new HttpClient(httpClientHandler);
            var channel    = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions {
                HttpClient = httpClient
            });
            var client            = new ShoeSizeConversion.ShoeSizeConversionClient(channel);
            var conversionRequest = new ConversionRequest {
                Size = 11.5, Gender = ConversionRequest.Types.Gender.Women
            };
            var conversionReply = await client.ConvertShoeSizeAsync(conversionRequest);

            Console.WriteLine($"{conversionRequest.Size} {conversionRequest.Gender} US → {conversionReply.Size} EU");
            Console.ReadKey();
        }
Exemple #21
0
    /// <summary>
    /// Downloads specified media streams and closed captions and processes them into a single file.
    /// </summary>
    public static async ValueTask DownloadAsync(
        this VideoClient videoClient,
        IReadOnlyList <IStreamInfo> streamInfos,
        IReadOnlyList <ClosedCaptionTrackInfo> closedCaptionTrackInfos,
        ConversionRequest request,
        IProgress <double>?progress         = null,
        CancellationToken cancellationToken = default)
    {
        var ffmpeg    = new FFmpeg(request.FFmpegCliFilePath);
        var converter = new Converter(videoClient, ffmpeg, request.Preset);

        await converter.ProcessAsync(
            request.OutputFilePath,
            request.Container,
            streamInfos,
            closedCaptionTrackInfos,
            progress,
            cancellationToken
            );
    }
Exemple #22
0
        public void Should_conversion_EUR_USD_49_fail_with_not_connected_currencies()
        {
            // ARRANGE
            List <ExchangeRate> exchangeRates = ConversionServiceFake.ExchangeRatesNotConnected;
            var conversionRequest             = new ConversionRequest("USD", "UAH", 1);

            var mock = new Mock <IShortestPathService>();

            mock.Setup(m => m.Get(It.IsAny <ConversionRequest>(), It.IsAny <IEnumerable <ExchangeRate> >()))
            .Returns(new ShortestPathResult(false, null));

            var svc = new ConversionService(mock.Object);

            // ACT
            var result = svc.Convert(conversionRequest, exchangeRates);

            // ASSERT
            result.IsSuccess.Should().BeFalse();
            result.Amount.Should().BeNull();
            result.ErrorMessage.Should().Be(ConversionErrorMessage.NoPath);
        }
Exemple #23
0
        internal MessageResponse ProcessRequest(ConversionRequest request)
        {
            string errorMsg;

            if (!ValidateRequest(request, out errorMsg))
            {
                return(MessageResponse.info(errorMsg));
            }
            try
            {
                var storageConnString = AzureKeyVaultProvider.StorageConnectionString;
                var decryptKey        = AzureKeyVaultProvider.AESKeyBLOB;

                //download file
                var downloadResult = DownloadConversionFiles(request, storageConnString, decryptKey);
                if (!downloadResult.Success)
                {
                    return(MessageResponse.info(downloadResult.ErrorMessage));
                }

                _psTool.SetCurrentConversionRequest(request);
                var sbStandardFile = _psTool.ProcessDataFile(downloadResult.PrimaryFileContent, downloadResult.RemittanceFileContent);
                var listErrors     = _psTool.GetErrors();

                if (listErrors.Any())
                {
                    return(MessageResponse.error(listErrors));
                }

                BlobHelper.UploadFile(storageConnString, request.containerName, request.blobOutputName, sbStandardFile, decryptKey);
                return(MessageResponse.ok(request.blobOutputName));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.ToString());
                return(MessageResponse.error(ex.Message));
            }
        }
Exemple #24
0
        public void Should_find_path_with_currencies_in_connected_graph()
        {
            // ARRANGE
            List <ExchangeRate> exchangeRates = new List <ExchangeRate> {
                new ExchangeRate("EUR", "CHF", 1.1046m),
                new ExchangeRate("RON", "CHF", 0.2322m),
                new ExchangeRate("USD", "RON", 4.2841m),
                new ExchangeRate("USD", "CHF", 0.9946m),
                new ExchangeRate("EUR", "ARS", 65.9057m),
                new ExchangeRate("ARS", "UAH", 0.4229m),
                new ExchangeRate("UAH", "EUR", 0.0359m),
                new ExchangeRate("BGN", "UAH", 14.2381m),
                new ExchangeRate("BGN", "JPY", 61.8563m),
                new ExchangeRate("BGN", "USD", 0.5677m)
            };

            var conversionRequest = new ConversionRequest("ARS", "JPY", 35);

            var mock = new Mock <IDijkstraService <string> >();

            mock.Setup(m => m.GetShortestPath(It.IsAny <Vertex <string> >(), It.IsAny <Vertex <string> >(), It.IsAny <Graph <string> >()))
            .Returns(new Dijkstra.Result.DijkstraShortestPathResult <string>(true,
                                                                             new List <Vertex <string> > {
                new Vertex <string>("ARS"),
                new Vertex <string>("UAH"),
                new Vertex <string>("BGN"),
                new Vertex <string>("JPY")
            }.AsEnumerable()));

            var svc = new DijkstraAdapter(mock.Object);

            // ACT
            var result = svc.Get(conversionRequest, exchangeRates);

            // ASSERT
            result.IsFound.Should().BeTrue();
            result.Path.Should().BeEquivalentTo(new[] { "ARS", "UAH", "BGN", "JPY" }, options => options.WithStrictOrdering());
        }
            public override async Task <Unit> Handle(GetRateAction aGetRateAction, CancellationToken aCancellationToken)
            {
                var conversionRequest = new ConversionRequest()
                {
                    FromCurrency = aGetRateAction.FromCurrency, ToCurrency = aGetRateAction.ToCurrency
                };
                string             uri = $"{ConversionRequest.Route}?{conversionRequest.ToQueryString()}";
                ConversionResponse conversionResponse = await HttpClient.GetJsonAsync <ConversionResponse>(uri);

                Conversion?conversion = RateState.Conversions.FirstOrDefault
                                        (
                    aConversion => aConversion.FromCurrency == aGetRateAction.FromCurrency &&
                    aConversion.ToCurrency == aGetRateAction.ToCurrency
                                        );

                RateState._Conversions.Remove(conversion);
                RateState._Conversions.Add(new Conversion(
                                               conversionRequest.FromCurrency,
                                               conversionRequest.ToCurrency,
                                               conversionResponse.Rate));

                return(Unit.Value);
            }
Exemple #26
0
        public void Should_conversion_45_EUR_return_50_USD_with_connected_currencies()
        {
            // ARRANGE
            List <ExchangeRate> exchangeRates = ConversionServiceFake.ExchangeRatesConnected;
            var conversionRequest             = new ConversionRequest("EUR", "USD", 45);

            var mock = new Mock <IShortestPathService>();

            mock.Setup(m => m.Get(It.IsAny <ConversionRequest>(), It.IsAny <IEnumerable <ExchangeRate> >()))
            .Returns(new ShortestPathResult(true, new List <string> {
                "EUR", "CHF", "USD"
            }.AsEnumerable()));

            var svc = new ConversionService(mock.Object);

            // ACT
            var result = svc.Convert(conversionRequest, exchangeRates);

            // ASSERT
            result.IsSuccess.Should().BeTrue();
            result.Amount.Should().Be(50);
            result.ErrorMessage.Should().BeNull();
        }
Exemple #27
0
        public ConversionResponse ConvertTubeToTune(ConversionRequest ConversionRequest)
        {
            if (ConversionRequest == null)
            {
                throw new AudioExtractionException("Please enter a YouTube link.");
            }

            IList <VideoConversionErrorDetailsDto> conversionErrors = new List <VideoConversionErrorDetailsDto>();
            IList <string> convertedVideoLinks = new List <string>();

            foreach (VideoConversionDetailsDto videoConversionDetail in ConversionRequest.VideoConversionDetails)
            {
                try
                {
                    IEnumerable <VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(videoConversionDetail.VideoLink, false);

                    VideoInfo video = videoInfos
                                      .Where(info => info.CanExtractAudio)
                                      .OrderByDescending(info => info.AudioBitrate)
                                      .First();

                    string convertedAudioFileName = FileNameGenerationHelper.RemoveIllegalPathCharacters(video.Title) + video.AudioExtension;
                    convertedVideoLinks.Add(convertedAudioFileName);

                    if (video.RequiresDecryption)
                    {
                        DownloadUrlResolver.DecryptDownloadUrl(video);
                    }

                    new AudioDownloader(video, Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), convertedAudioFileName)).Execute();
                }
                catch (Exception e) { conversionErrors.Add(BuildVideoConversionError(e.Message, videoConversionDetail.VideoId)); }
            }

            return(BuildConversionResponse(convertedVideoLinks, conversionErrors, ConversionRequest.VideoConversionDetails.Count()));
        }
Exemple #28
0
        public void Should_conversion_550_EUR_return_59033_JPY_with_connected_currencies_of_exam_instructions()
        {
            // ARRANGE
            List <ExchangeRate> exchangeRates = ConversionServiceFake.ExchangeRatesOfExamInstructions;
            var conversionRequest             = new ConversionRequest("EUR", "JPY", 550);

            // create dependency mock
            var mock = new Mock <IShortestPathService>();

            mock.Setup(m => m.Get(It.IsAny <ConversionRequest>(), It.IsAny <IEnumerable <ExchangeRate> >()))
            .Returns(new ShortestPathResult(true, new List <string> {
                "EUR", "CHF", "AUD", "JPY"
            }.AsEnumerable()));

            var svc = new ConversionService(mock.Object);

            // ACT
            var result = svc.Convert(conversionRequest, exchangeRates);

            // ASSERT
            result.IsSuccess.Should().BeTrue();
            result.Amount.Should().Be(59033);
            result.ErrorMessage.Should().BeNull();
        }
        //ko cho truyền IConfiguration configuration chổ này??????????????????????
        public MessageResponse PaymentImport([FromForm] ConversionRequest request)
        {
            PaymentConversionService service = new PaymentConversionService(new PaymentPsTool());

            return(service.ProcessRequest(request));
        }
			public Request(ConversionRequest conversionRequest, string fileName)
			{
				ConversionRequest = conversionRequest;
				FileName = fileName;
			}
Exemple #31
0
        public MessageResponse convert(ConversionRequest reqValue)
        {
            LOGGER.Info("Conversion processing...");
            if (reqValue == null || string.IsNullOrEmpty(reqValue.blobHeaderName) || string.IsNullOrEmpty(reqValue.blobOutputName) || string.IsNullOrEmpty(reqValue.containerName))
            {
                return(MessageResponse.info("[blobHeaderName, blobOutputName, containerName] are required."));
            }
            string BlobContainer           = reqValue.containerName.Trim();
            string BlobInputName           = reqValue.blobHeaderName.Trim();
            string BlobOutputName          = reqValue.blobOutputName.Trim();
            string AESKey                  = Vault.Current.AESKeyBLOB;
            string storageConnectionString = Vault.Current.StorageConnectionString;


            //validate parameter
            if (string.IsNullOrEmpty(BlobContainer))
            {
                return(MessageResponse.info("Blob container is required."));
            }
            if (string.IsNullOrEmpty(BlobInputName))
            {
                return(MessageResponse.info("Blob file input is required."));
            }
            if (string.IsNullOrEmpty(BlobOutputName))
            {
                return(MessageResponse.info("Blob file output is required."));
            }
            if (string.IsNullOrEmpty(AESKey))
            {
                return(MessageResponse.info("AESKEY to encrypt/decrypt file is required."));
            }

            try
            {
                // Retrieve reference to a previously created container.
                CloudBlobContainer blobContainer       = BlobHelper.GetCloudBlobContainer(storageConnectionString, BlobContainer);
                Task <bool>        IsExitBlobContainer = blobContainer.ExistsAsync();
                if (blobContainer == null || !IsExitBlobContainer.Result)
                {
                    return(MessageResponse.info(string.Format("Can't find the BLOB container [{0}].", BlobContainer)));
                }

                // Retrieve reference to a blob named "myblob".
                CloudBlockBlob blockBlobInput       = blobContainer.GetBlockBlobReference(BlobInputName);
                Task <bool>    IsExitblockBlobInput = blockBlobInput.ExistsAsync();
                if (blockBlobInput == null || !IsExitblockBlobInput.Result)
                {
                    return(MessageResponse.info(string.Format("Can't find the BLOB file [{0}].", BlobInputName)));
                }

                //download file
                byte[] fileInput = BlobHelper.DownloadFileToArrayByte(blockBlobInput, AESKey);
                if (fileInput == null)
                {
                    return(MessageResponse.info(string.Format("Can't find the content of the BLOB file [{0}].", BlobInputName)));
                }

                //do conversion
                StringBuilder sbStandardFile = this.doConvert(fileInput);

                //no error: write the file standard
                if (this.ListErrorVendor == null || this.ListErrorVendor.Count == 0)
                {
                    //upload the file standard file to azure
                    BlobHelper.UploadFile(blobContainer, BlobOutputName, sbStandardFile, AESKey);

                    //return the blob output name of file saved
                    //LOGGER.Info(string.Format("File [{0}] converted to the file [{1}] and saved successfully in the BLOB container [{2}]", BlobInputName, BlobOutputName, BlobContainer));
                    return(MessageResponse.ok(reqValue.blobOutputName));
                }


                //report errors if have
                if (this.ListErrors == null)
                {
                    this.ListErrors = new List <string>();
                }
                if (this.ListErrorVendor.Count > 0)
                {
                    this.ListErrors.AddRange(this.ListErrorVendor);
                }
                return(MessageResponse.error(this.ListErrors));
            }
            catch (Exception ex)
            {
                LOGGER.Error(ex);
                throw;
            }
        }
		private void NewFileFound(FileSystemInfo file)
		{
			try
			{
				var request = new ConversionRequest();
				var path = File.ReadAllText(file.FullName);
				Factory.ReadRequest(new StreamReader(path));	// reads all text to ensure that file is closed after reading
				lock (ConversionRequestQueue)
				{
					Logger.TraceInfo(MethodBase.GetCurrentMethod(), "({0}) enqueue {1}", Thread.CurrentThread.Name, file.FullName);
					ConversionRequestQueue.Enqueue(new Request(request, Path.GetFileName(file.FullName)));
					File.Delete(file.FullName);
				}
			}
			catch (Exception exception)
			{
				Logger.TraceErr(MethodBase.GetCurrentMethod(), "({0}) Exception", Thread.CurrentThread.Name);
				Logger.TraceErr(MethodBase.GetCurrentMethod(), exception);
			}
		}