public async Task <IActionResult> Create([Bind("ID,Nome,NumCedulaProf,Fotografia")] Veterinarios veterinario, IFormFile fotoVet) { //processar a fotografia string caminhoCompleto = ""; bool haImagem = false; // processar a fotografia -> se nao ha usamos noVet.jog que é a default para todos if (fotoVet == null) { veterinario.Fotografia = "noVet.jpg"; } else { //sera o ficheiro uma imagemc if (fotoVet.ContentType == "image/jpeg" || fotoVet.ContentType == "imahe/png") { //o ficheiro é uma imagem valida //prepara a imagem para ser guardada no disco e o seu nome associado ao vet Guid g; g = Guid.NewGuid(); string extensao = Path.GetExtension(fotoVet.FileName).ToLower(); string nome = g.ToString() + extensao; //onde guardar o ficheiro caminhoCompleto = Path.Combine(_caminho.WebRootPath, "Imagens\\Vets", nome); //associar o nome do ficheiro ao vet veterinario.Fotografia = nome; //assinalar que existe imagem e é preciso guarda-la no disco haImagem = true; } else { //ha imagem mas nao é do tipo certo veterinario.Fotografia = "noVet.jpg"; } } if (ModelState.IsValid) { try { _context.Add(veterinario); await _context.SaveChangesAsync(); // se há imagem, vou guardar no disco if (haImagem) { using var stream = new FileStream(caminhoCompleto, FileMode.Create); await fotoVet.CopyToAsync(stream); } return(RedirectToAction(nameof(Index))); } catch (Exception) { //se chegar aqui, é pq alguma coisa correu mal //o que fazer? } } return(View(veterinario)); }
public async Task <IActionResult> Create([Bind("ID,Nome,NIF")] Donos dono) { if (ModelState.IsValid) { db.Add(dono); await db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(dono)); }
public async Task <IActionResult> Create(Donos dono) // public IActionResult Index(string visor, string bt, string primeiroOperando, string operador, string limpaVisor) { { if (ModelState.IsValid) { _db.Add(dono); // INSERT INTO Donos VALUE (...); await _db.SaveChangesAsync(); // COMMIT return(RedirectToAction(nameof(Index))); } return(View(dono)); // ViewBag.Operador = operador; }
public async Task <IActionResult> Create([Bind("ID,Nome,NIF")] Donos dono) { if (ModelState.IsValid) { db.Add(dono); await db.SaveChangesAsync(); // commit return(RedirectToAction(nameof(Index))); } // alguma coisa correu mal. // devolve-se o controlo da aplicação à View return(View(dono)); }
public async Task <IActionResult> Create(Donos dono) { // public IActionResult Index(string visor, string bt, string primeiroOperando, string operador, string limpaVisor) { -> na 'Calculadora' if (ModelState.IsValid) { db.Add(dono); await db.SaveChangesAsync(); // commit return(RedirectToAction(nameof(Index))); } // alguma coisa correu mal. // devolve-se o controlo da aplicação à View return(View(dono)); }
public async Task<IActionResult> Create([Bind("ID,Nome,NumCedulaProf,Fotografia")] Veterinarios veterinario, IFormFile fotoVet) { //***************************************** // processar a fotografia //***************************************** // vars.auxiliares string caminhoCompleto = ""; bool haImagem = false; // será que há fotografia? // - uma hipótese possível, seria reeenviar os dados para a View e solicitar a adição da imagem // - outra hipótese, será associar ao veterinário uma fotografia 'por defeito' if (fotoVet == null) { veterinario.Fotografia = "noVet.jpg"; } else { // há ficheiro // será o ficheiro uma imagem? if (fotoVet.ContentType=="image/jpeg" || fotoVet.ContentType=="image/png") { // o ficheiro é uma imagem válida // preparar a imagem para ser guardada no disco rígido // e o seu nome associado ao Veterinário Guid g; g = Guid.NewGuid(); string extensao = Path.GetExtension(fotoVet.FileName).ToLower(); string nome = g.ToString() + extensao; // onde guardar o ficheiro caminhoCompleto = Path.Combine(_caminho.WebRootPath, "Imagens\\Vets", nome); // associar o nome do ficheiro ao Veterinário veterinario.Fotografia = nome; // assinalar que existe imagem e é preciso guardá-la no disco rígido haImagem = true; } else { // há imagem, mas não é do tipo correto veterinario.Fotografia = "noVet.jpg"; } } if (ModelState.IsValid) { try { _context.Add(veterinario); await _context.SaveChangesAsync(); // se há imagem, vou guardá-la no disco rígido if (haImagem) { using var stream = new FileStream(caminhoCompleto, FileMode.Create); await fotoVet.CopyToAsync(stream); } return RedirectToAction(nameof(Index)); } catch (Exception) { //se chegar aqui, é porque alguma coisa correu mesmo mal... //o que fazer? //opções a realizar: // - escrever, no disco do servidor, um log com o erro // - escrever numa tabela de Erros, na BD, o log do erro // - enviar o modelo de volta para a View // - se o erro for corrígivel, corrigir o erro } } return View(veterinario); }
public async Task <IActionResult> Create([Bind("Nome,NumCedulaProf,Fotografia")] Veterinarios veterinario, IFormFile fotoVet) { //**************************************** // processar o ficheiro da Fotografia //**************************************** // vars. auxiliares string caminhoCompleto = ""; bool haImagem = false; // será que há ficheiro? if (fotoVet == null) { // não há ficheiro! // o que vai ser feito? // - devolver o controlo para a View, informando que é necessário escolher uma fotografia // ModelState.AddModelError("", "Não se esqueça de adicionar uma fotografia do Veterinário"); // return View(veterinario); // - adicionar uma fotografia 'por defeito' veterinario.Fotografia = "noFoto.png"; } else { // há ficheiro. // será que é uma imagem? if (fotoVet.ContentType == "image/jpeg" || fotoVet.ContentType == "image/png") { // temos imagem. Ótimo! // temos de gerar um nome para o ficheiro Guid g; g = Guid.NewGuid(); // identificar a Extensão do ficheiro string extensao = Path.GetExtension(fotoVet.FileName).ToLower(); // nome do ficheiro string nome = g.ToString() + extensao; // preparar o ficheiro para ser guardado, mas não o vamos guardar já... // precisamos de identificar o caminho onde o ficheiro vai ser guardado caminhoCompleto = Path.Combine(_ambiente.WebRootPath, "Imagens\\Vets", nome); // associar o nome da fotografia ao Veterinário veterinario.Fotografia = nome; // assinalar que existe imagem haImagem = true; } else { // há ficheiro, MAS não é uma imagem // o que vai ser feito? // - devolver o controlo para a View, informando que é necessário escolher uma fotografia // ModelState.AddModelError("", "Não se esqueça de adicionar uma fotografia do Veterinário"); // return View(veterinario); // - adicionar uma fotografia 'por defeito' veterinario.Fotografia = "noFoto.png"; } } if (ModelState.IsValid) { // adiciona o Veterinário ao Modelo _context.Add(veterinario); // consolida, na BD, as alterações await _context.SaveChangesAsync(); // o registo foi guardado // o ficheiro vai agora ser guardado no disco rígido if (haImagem) { using var stream = new FileStream(caminhoCompleto, FileMode.Create); await fotoVet.CopyToAsync(stream); } // redireciona o utilizador para a View Index return(RedirectToAction(nameof(Index))); } // se o modelo não for válido, devolve o controlo à view do Create return(View(veterinario)); }
public async Task <IActionResult> Create([Bind("ID,Nome,NumCedulaProf,Foto")] Veterinarios veterinario, IFormFile fotoVet) { //*************************************** // processar a imagem //*************************************** // vars. auxiliares bool haFicheiro = false; string caminhoCompleto = ""; // será q há imagem? if (fotoVet == null) { // o utilizador não fez upload de um ficheiro veterinario.Foto = "avatar.png"; } else { // existe fotografia. // Mas, será boa? if (fotoVet.ContentType == "image/jpeg" || fotoVet.ContentType == "image/png") { // estamos perante uma boa foto // temos de gerar um nome para o ficheiro Guid g; g = Guid.NewGuid(); // obter a extensão do ficheiro string extensao = Path.GetExtension(fotoVet.FileName).ToLower(); string nomeFicheiro = g.ToString() + extensao; // onde guardar o ficheiro caminhoCompleto = Path.Combine(_caminho.WebRootPath, "imagens\\vets", nomeFicheiro); // atribuir o nome do ficheiro ao Veterinário veterinario.Foto = nomeFicheiro; // marcar q existe uma fotografia haFicheiro = true; } else { // o ficheiro não é válido veterinario.Foto = "avatar.png"; } } try { if (ModelState.IsValid) { // adiciona o novo veterinário à BD, mas na memória do servidor ASP .NET db.Add(veterinario); // consolida os dados no Servidor BD (commit) await db.SaveChangesAsync(); // será q há foto para gravar? if (haFicheiro) { using var stream = new FileStream(caminhoCompleto, FileMode.Create); await fotoVet.CopyToAsync(stream); } // redireciona a ação para a View do Index return(RedirectToAction(nameof(Index))); } } catch (Exception) { throw; } // qd ocorre um erro, reenvio os dados do veterinário para a view da criação return(View(veterinario)); }