public AdicionarImagenResponse AdicionarImagem(AdicionarImagemRequest request)
        {
            Imagem imagem = new Imagem(request.Nome, request.Dados, request.ContentType);

            _repositorioImagem.Adicionar(imagem);

            return(new AdicionarImagenResponse(imagem.Id));
        }
        public async Task <IActionResult> SalvarImagem(IList <IFormFile> arquivos)
        {
            AdicionarImagemRequest imagemRequest = new AdicionarImagemRequest();
            IFormFile imagemEnviada = arquivos.FirstOrDefault();

            if (imagemEnviada != null || imagemEnviada.ContentType.ToLower().StartsWith("image/"))
            {
                MemoryStream ms = new MemoryStream();
                imagemEnviada.OpenReadStream().CopyTo(ms);


                string fileName;

                Imagem imagemEntity = new Imagem()
                {
                    Nome        = imagemEnviada.Name,
                    Dados       = ms.ToArray(),
                    ContentType = imagemEnviada.ContentType
                };

                var arquivo = imagemEntity.Dados;

                string webRootPath = _hostingEnvironment.WebRootPath;
                string newPath     = Path.Combine(webRootPath, "images");
                if (!Directory.Exists(newPath))
                {
                    Directory.CreateDirectory(newPath);
                }

                //var path = Path.Combine(
                //                Directory.GetCurrentDirectory(), "wwwroot",
                //                imagemEnviada.Name + ".png" );

                var extension = "." + imagemEnviada.FileName.Split('.')[imagemEnviada.FileName.Split('.').Length - 1];
                fileName = Guid.NewGuid().ToString() + extension; //Create a new Name
                                                                  //for the file due to security reasons.
                var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images", fileName);

                using (var bits = new FileStream(path, FileMode.Create))


                {
                    await imagemEnviada.CopyToAsync(bits);
                }


                imagemRequest.Nome        = imagemEnviada.Name;
                imagemRequest.Dados       = ms.ToArray();
                imagemRequest.ContentType = imagemEnviada.ContentType;
            }

            try
            {
                var response = _serviceImagem.AdicionarImagem(imagemRequest);
                return(await ResponseAsync(response, _serviceImagem));
            }
            catch (Exception e)
            {
                return(await ResponseExceptionAsync(e));
            }
        }