Example #1
0
        public async Task <ActionResult <Tour> > PostTour([FromForm] TourPostDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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

            _context.Tours.Add(tour);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetTour", new { id = tour.Id }, tour));
        }
Example #2
0
        private string ProcessUploadedFile(TourPostDTO model)
        {
            string uniqueFileName = null;

            if (model.Image != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "TourImages");
                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);
        }
Example #3
0
        //tours images
        public async Task <string> ProcessTourImgAsync(TourPostDTO 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("tourimages");
                // 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);
        }