예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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;
        }
예제 #4
0
        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));
        }
예제 #5
0
        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));
        }