public async Task <ActionResult <UserLocationViewModel> > UploadFileAsync([FromForm] IFormFile file)
        {
            var userId   = Guid.NewGuid().ToString();
            var response = new UserLocationViewModel
            {
                Id = userId
            };

            if (file == null)
            {
                return(BadRequest("No file has been uploaded."));
            }

            if (!IsFileLengthValid(file))
            {
                return(BadRequest("File size exceeded configured limit."));
            }

            try
            {
                using (Stream stream = new MemoryStream())
                {
                    await file.CopyToAsync(stream);

                    stream.Position = 0;
                    await azureBlobService.UploadFile(userId, stream);

                    await locationCreatedSender.SendMessageAsync(new LocationsCreatedMessage
                    {
                        UserId = userId
                    });
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Processing of uploaded file failed.", ex);
            }


            return(response);
        }
예제 #2
0
        public async Task <IActionResult> Create([Bind("NomeProduto,Preco,FotoProdutoURL,Id")] Produto produto)
        {
            if (ModelState.IsValid)
            {
                //produto.Id = Guid.NewGuid();
                _context.Add(produto);

                //==== Upload da foto do Cliente ====
                for (int i = 0; i < Request.Form.Files.Count; i++)
                {
                    var file        = Request.Form.Files[i];
                    var blobService = new AzureBlobService();
                    produto.FotoProdutoURL = blobService.UploadFile(file.FileName, file.OpenReadStream(), "jennyfer", file.ContentType);
                }
                //===================================

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(produto));
        }