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)); }