public async Task <JsonResult> ConvertToPointsById([FromBody] ConvertFromNameOptions options) { try { _logger.InformationObject(options); var stopwatch = Stopwatch.StartNew(); var result = await _imageConverter.ConvertFromFileName(options); _logger.Information("ConvertToPointsByFileName time", stopwatch.Elapsed.TotalMilliseconds); return(new JsonResult(result)); } catch (Exception ex) { _logger.ErrorObject(ex, options); throw; } }
public async Task <RecColor> ConvertFromFileName(ConvertFromNameOptions options) { var images = _imagesService.GetList(); var fileName = images.FirstOrDefault(x => x.Id == options.ImageId)?.Name; if (string.IsNullOrEmpty(fileName)) { return(null); } await using var stream = _fileService.OpenRead(Path.Combine(Directory.GetCurrentDirectory(), FolderConstant.ImagePath, fileName)); var result = await _imageConverter.ConvertToChars(stream, options) .ConfigureAwait(AsyncConstant.ContinueOnCapturedContext); return(result); }
public async Task ConvertToPoint_ByFileName() { var convertOptions = new ConvertFromNameOptions() { Colored = true, ColorStep = ColorStep.VeryBig, Size = 300, ImageId = 1 }; var logger = new Mock <IActionLogger>().Object; var imagesService = new Mock <IGetImagesService>(); imagesService.Setup(x => x.GetList()) .Returns(new List <ImageListItem>() { new ImageListItem() { Id = 1, Name = "test_image.jpg" } }); var fileService = new Mock <IFileService>(); fileService.Setup(f => f.OpenRead(It.IsAny <string>())) .Returns(ImageGenerate.GenerateGradientImage()); using var imageConverter = new ImageConverter.ImageConverter(); var imageToPointConverter = new ImageToPointService(imageConverter, imagesService.Object, fileService.Object); var controller = new GenerateController(imageToPointConverter, logger); var jsonResult = await controller.ConvertToPointsById(convertOptions); var recColor = jsonResult.Value as RecColor; Assert.NotNull(jsonResult); Assert.NotNull(recColor); Assert.True(recColor.Cells.Count > 0); Assert.True(recColor.CellsColor.Count > 0); }