Esempio n. 1
0
        public async Task FileUploadTest()
        {
            var FileMoq = new Mock <IFormFile>();
            var cd      = Directory.GetCurrentDirectory();

            FileMoq.Setup(f => f.OpenReadStream())
            .Returns(new FileStream($"{cd}\\..\\..\\..\\..\\RoLaMoDS\\Capture.png", FileMode.Open));

            var model = new UploadImageFileModel
            {
                File      = FileMoq.Object,
                Latitude  = 0,
                Longitude = 0,
                Scale     = 17
            };
            var ret = await MainControllerService.UploadImageFromFile(model, Guid.Empty);

            Assert.True(File.Exists(cd + "\\images\\101.bmp"));
            var expected = (new { resultImagePath = "\\images\\101.bmp" }, 200, "");

            Assert.Equal(expected.Item2, ret.Item2);
            Assert.Equal(expected.Item3, ret.Item3);
            Assert.Equal(expected.Item1.GetHashCode(), ret.Item1.GetHashCode());
            File.Delete(cd + "\\images\\101.bmp");
        }
Esempio n. 2
0
        /// <summary>
        /// Upload image from file with longitude, lantitude and scale
        /// </summary>
        /// <param name="model">Model to upload</param>
        /// <returns>Task of (result, state, message)</returns>
        public async Task <(object, int, string)> UploadImageFromFile(UploadImageFileModel model, Guid UserId)
        {
            var filePath = _fileService.GetNextFilesPath(1, DirectoryType.Upload)[0];

            if (model.File.OpenReadStream().TryConvertToImage(out Image img))
            {
                img.Save(filePath, System.Drawing.Imaging.ImageFormat.Bmp);
                string       retUrl = filePath.Remove(0, filePath.LastIndexOf("\\images\\"));
                ImageDBModel image  = new ImageDBModel
                {
                    Cells     = null,
                    Expires   = DateTime.Now + TimeSpan.FromDays(1),
                    IsPreview = model.IsPreview,
                    Longitude = -1,
                    Latitude  = -1,
                    Scale     = -1,
                    URL       = retUrl
                };
                if (UserId == Guid.Empty)
                {
                    _applicationDBContext.Images.Add(image);
                }
                else
                {
                    _applicationDBContext.Users.Find(UserId).DownloadedImages.Add(image);
                }

                await _applicationDBContext.SaveChangesAsync();

                return(new
                {
                    resultImagePath = retUrl
                }, 200, "");
            }
            return("", 400, "File_Not_Image");
        }
Esempio n. 3
0
 public async Task <IActionResult> UploadImageFromFile(UploadImageFileModel model)
 {
     return(await Upload <UploadImageFileModel>(model));
 }