示例#1
0
        public async Task <IActionResult> PostJson([FromBody] Base64ImageModel[] imageInfos)
        {
            try
            {
                //Save File
                foreach (var imageInfo in imageInfos)
                {
                    await _imageService.FileCheck(imageInfo);

                    var dbModel = new ImageDbModel()
                    {
                        FileName    = imageInfo.fileName,
                        AddedDate   = DateTime.Now,
                        ImageData   = imageInfo.data,
                        PreviewData = resizer.Resize(imageInfo.data),
                    };
                    await _imageService.Save(dbModel, _dbContext);
                }
            }
            catch (ArgumentException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(500));
            }

            return(Ok());
        }
示例#2
0
        public async Task <IActionResult> PostForm(IFormCollection dataCollection)
        {
            try
            {
                if (dataCollection.Files.Count == 0)
                {
                    return(BadRequest("Request has no files"));
                }

                foreach (var formFile in dataCollection.Files)
                {
                    await using (var stream = new MemoryStream(2048))
                    {
                        //Get data from stream
                        await formFile.CopyToAsync(stream);

                        var content = stream.ToArray();

                        //Check and save
                        await _imageService.FileCheck(new Models.FileInformation()
                        {
                            fileName = formFile.FileName, data = content
                        });

                        ImageDbModel model = new ImageDbModel()
                        {
                            FileName    = formFile.FileName,
                            AddedDate   = DateTime.Now,
                            ImageData   = content,
                            PreviewData = resizer.Resize(content),
                        };
                        await _imageService.Save(model, _dbContext);
                    }
                }
            }
            catch (ArgumentException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(500));
            }

            return(Ok());
        }
示例#3
0
        public async Task <IActionResult> PostFromUrl([Url] string url, string fileName)
        {
            if (string.IsNullOrEmpty(url))
            {
                return(BadRequest());
            }
            Uri uri = new Uri(url);

            try
            {
                using var client = new WebClient();
                var imageBytes = await client.DownloadDataTaskAsync(uri);

                Models.FileInformation imageInfo = new Models.FileInformation()
                {
                    fileName = fileName ?? Path.GetFileName(url), data = imageBytes
                };

                await _imageService.FileCheck(imageInfo);

                ImageDbModel model = new ImageDbModel()
                {
                    FileName    = imageInfo.fileName,
                    AddedDate   = DateTime.Now,
                    ImageData   = imageBytes,
                    PreviewData = resizer.Resize(imageBytes),
                };
                await _imageService.Save(model, _dbContext);

                return(Ok());
            }
            catch (ArgumentException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(500));
            }
        }
示例#4
0
        public async Task Save(ImageDbModel imageModel, ImageContext context)
        {
            await context.Images.AddAsync(imageModel);

            await context.SaveChangesAsync();
        }
示例#5
0
 public async Task Save(ImageDbModel model, ImageContext dbContext)
 {
     await _saver.Save(model, dbContext);
 }