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); }
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)); }
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); }