public IActionResult AlterarAtendimento(Atendimento atendimento)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.Bichinhos    = new SelectList(bichinhoRepo.ListaBichinhos(), "Id", "Nome");
                ViewBag.Veterinarios = new SelectList(veterinarioRepo.ListaVeterinarios(), "Id", "Nome");
                return(View(atendimento));
            }

            var indisponivel = atendimentoRepo.DataIndisponivel(atendimento.Data, atendimento.Id);

            if (indisponivel || atendimento.Data.Hour < 8 || atendimento.Data.Hour > 18)
            {
                ViewBag.Bichinhos    = new SelectList(bichinhoRepo.ListaBichinhos(), "Id", "Nome");
                ViewBag.Veterinarios = new SelectList(veterinarioRepo.ListaVeterinarios(), "Id", "Nome");
                ModelState.AddModelError("Data", "Horário indisponivel. Das 8h-18h com 15 minutos de intervalo entre atendimentos.");
                return(View(atendimento));
            }

            var atend = atendimentoRepo.ObterAtendimentoPorId(atendimento.Id);

            atend.BichinhoId    = atendimento.BichinhoId;
            atend.VeterinarioId = atendimento.VeterinarioId;
            atend.Data          = atendimento.Data;
            atend.Observacao    = atendimento.Observacao;

            atendimentoRepo.Alterar(atend);

            return(RedirectToAction("ListaAtendimentos"));
        }
        /// <summary>
        /// Verifica se o ID do médico e da clínica são válidos e se os campos foram preenchidos.
        /// Antes de alterar os dados do atendimento no Database.
        /// </summary>
        /// <param name="id">Usado para buscar um atendimento no Database.</param>
        /// <param name="entity">Objeto com os dados do atendimento.</param>
        /// <returns>Seleciona o atendimento alterado no Databse ou gera uma exceção.</returns>
        public Atendimento Alterar(int id, Atendimento entity)
        {
            //Verifica se existem campos vazios.
            if (CamposVazios.Verificar(entity))
            {
                throw new DadoInvalidoException("Existem campos obrigatórios que não foram preenchidos!");
            }

            //Verifica se o ID do médico é válido.
            var RepositorioMedico = new MedicoRepositorio();

            if (RepositorioMedico.SelecionarPorId(entity.IdMedico) == null)
            {
                throw new DadoInvalidoException($"Não foi encontrado nenhum médico " +
                                                $"com o ID: {entity.IdMedico}");
            }

            //Verifica se o ID da clínica é válido.
            var RepositorioClinica = new ClinicaRepositorio();

            if (RepositorioClinica.SelecionarPorId(entity.IdClinica) == null)
            {
                throw new DadoInvalidoException($"Não foi encontrado nenhuma clínica " +
                                                $"com o ID: {entity.IdMedico}");
            }

            entity.Id = id;
            _atendimentoRepositorio.Alterar(entity);

            return(_atendimentoRepositorio.SelecionarPorId(id));
        }