Пример #1
0
        private string ProcessUploadedFile(CuriositiesPostDTO model)
        {
            string uniqueFileName = null;

            if (model.Image != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Image.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Image.CopyTo(fileStream);
                }
            }

            return(uniqueFileName);
        }
Пример #2
0
        public async Task <ActionResult <Curiosity> > PostCuriosity([FromForm] CuriositiesPostDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //string uniqueFileName = ProcessUploadedFile(model);
            string uniqueFileName = await _AzureFileService.ProcessFotoAsync(model);

            Curiosity curiosity = new Curiosity
            {
                City        = model.City,
                Coordinates = model.Coordinates,
                Country     = model.Country,
                Latitude    = model.Latitude,
                Longitude   = model.Longitude,
                Period      = model.Period,
                Province    = model.Province,
                Region      = model.Region,
                Type        = model.Type,
                Name        = model.Name,
                Image       = uniqueFileName,
                Description = model.Description
            };

            _context.Curiosities.Add(curiosity);
            await _context.SaveChangesAsync();

            var curiosityLike = new CuriosityLike {
                CuriosityId = curiosity.Id, Likes = 0
            };

            _context.CuriosityLikes.Add(curiosityLike);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCuriosity", new { id = curiosity.Id }, curiosity));
        }
Пример #3
0
        public async Task <string> ProcessFotoAsync(CuriositiesPostDTO model)
        {
            string uniqueFileName = null;

            if (model.Image != null)
            {
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Image.FileName;

                // Retrieve storage account from connection string.
                CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(StorageConnectionString);
                // Create the blob client.
                CloudBlobClient blobClient = cloudStorageAccount.CreateCloudBlobClient();
                // Retrieve a reference to a container.
                CloudBlobContainer container = blobClient.GetContainerReference("images");
                // This also does not make a service call; it only creates a local object.
                CloudBlockBlob blockBlob = container.GetBlockBlobReference(uniqueFileName);
                await using (var data = model.Image.OpenReadStream())
                {
                    await blockBlob.UploadFromStreamAsync(data);
                }
            }

            return(uniqueFileName);
        }