Beispiel #1
0
        public async Task <IActionResult> Create([Bind("ApartamentoId,Numero,Andar,Foto,MoradorId,ProprietarioId")] Apartamento apartamento, IFormFile foto)
        {
            if (ModelState.IsValid)
            {
                if (foto != null)
                {
                    string diretorio = Path.Combine(_webHostEnvironment.WebRootPath, "Imagens");
                    string nomeFoto  = Guid.NewGuid().ToString() + foto.FileName;

                    using (FileStream fileStream = new FileStream(Path.Combine(diretorio, nomeFoto), FileMode.Create))
                    {
                        await foto.CopyToAsync(fileStream);

                        apartamento.Foto = "~/Imagens/" + nomeFoto;
                    }
                }

                await _apartamentoRepositorio.Inserir(apartamento);

                TempData["NovoRegistro"] = $"Apartamento número {apartamento.Numero} registrado com sucesso";
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MoradorId"]      = new SelectList(await _usuarioRepositorio.PegarTodos(), "Id", "UserName", apartamento.MoradorId);
            ViewData["ProprietarioId"] = new SelectList(await _usuarioRepositorio.PegarTodos(), "Id", "UserName", apartamento.ProprietarioId);
            return(View(apartamento));
        }
Beispiel #2
0
        public async Task <IActionResult> Create([Bind("ApartamentoId,Numero,Andar,Foto,MoradorId,ProprietarioId")] Apartamento apartamento, IFormFile foto)
        {
            if (ModelState.IsValid)
            {
                // verificar se tem alguma foto selecionada
                if (foto != null)
                {
                    string diretorio = Path.Combine(_webHostEnvironment.WebRootPath, "Imagens"); ///wwwwroot, pasta Imagens
                    string nomeFoto  = Guid.NewGuid().ToString() + foto.FileName;

                    // FileStream para gravar a foto no diretorio com o nome atribuido
                    using (FileStream fileStream = new FileStream(Path.Combine(diretorio, nomeFoto), FileMode.Create))
                    {
                        await foto.CopyToAsync(fileStream); // inserir foto no diretorio

                        apartamento.Foto = "~/Imagens/" + nomeFoto;
                    }
                }

                await _apartamentoRepositorio.Inserir(apartamento);

                TempData["NovoRegisto"] = $"Apartamento número {apartamento.Numero} registado com sucesso";
                return(RedirectToAction(nameof(Index)));
            }
            // caso os dados sejam invalidos
            ViewData["MoradorId"]      = new SelectList(await _utilizadorRepositorio.ObterTodos(), "Id", "UserName", apartamento.MoradorId);      // lista com o valor do Id do controler e o nome do utilizador
            ViewData["ProprietarioId"] = new SelectList(await _utilizadorRepositorio.ObterTodos(), "Id", "UserName", apartamento.ProprietarioId); // lista com o valor do Id do controler e o nome do utilizador
            return(View(apartamento));
        }