/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="entity"></param> /// <returns></returns> public MedicoDto Alterar(int id, Medico entity) { var crmExistente = _medicoRepositorio.SelecionarPorCrm(entity.Crm); if (crmExistente != null) { if (crmExistente.Id != id) { throw new ConflitoException($"Já existe cadastrado o CRM {crmExistente.Crm}, para outro médico!"); } } var cpfExistente = _medicoRepositorio.SelecionarPorCpf(entity.Cpf); if (cpfExistente != null) { if (cpfExistente.Id != id) { throw new ConflitoException($"Já existe cadastrado o CPF {cpfExistente.Cpf}, para outro médico!"); } } entity.Id = id; _medicoRepositorio.Alterar(entity); return(_medicoRepositorio.SelecionarPorId(id)); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="entity"></param> /// <returns></returns> public MedicoDto Alterar(int id, Medico entity) { var emailExistente = _medicoRepositorio.SelecionarPorEmailPorId(entity.Email,id); //Verifica se já existe um usuario com o Email já cadastrado if (emailExistente != null) throw new ConflitoException($"Já existe usuário cadastrado com Email {emailExistente.Email}!"); entity.Id = id; _medicoRepositorio.Alterar(entity); return _medicoRepositorio.SelecionarPorId(id); }
/// <summary> /// Verifica se o CPF, o CRM e o email já não estão cadastrados, se o CPF é válido, se existem campos obrigatórios /// que não estão preenchidos, se os campos respeitam os limites de caracteres especificados no Database e se o /// médico é maior de idade. Antes de alterar os dados sobre um médico. /// </summary> /// <param name="id">Usado para buscar o médico no Database.</param> /// <param name="entity">Objeto com as informações a serem alteradas.</param> /// <returns>Seleciona um médico do Database ou gera alguma exceção.</returns> public Medico Alterar(int id, Medico entity) { Medico obj; //Verifica se existem campos vazios. if (CamposVazios.Verificar(entity)) { throw new DadoInvalidoException("Existem campos obrigatórios que não foram preenchidos!"); } //Verifica se nenhum campo do objeto entity excede o limite de caracteres estipulado no Database. if (ExcedeLimiteDeCaracteres.Verificar(entity)) { throw new DadoInvalidoException("Existem campos que excedem o limite de caracteres permitidos!"); } //Converte o gênero para caixa alta e verifica se o gênero é válido. if (GeneroValido.Verificar(GeneroValido.CaixaAlta(entity.Genero)) == false) { throw new DadoInvalidoException($"O gênero: \"{entity.Genero}\", é inválido!"); } //Verifica se o formato e a quantidade de caracteres do celular são válidos. if (TelefoneValido.Verificar(TelefoneValido.LimparFormatacao(entity.Celular)) == false) { throw new DadoInvalidoException($"O número de celular:\"{entity.Celular}\" é inválido!"); } //Verifica se o CRM já não foi cadastrado. obj = _medicoRepositorio.SelecionarPorCrm(entity.Crm); if (obj != null && obj.Id != id) { throw new ConflitoException($"O CRM: \"{entity.Crm}\", já foi cadastrado!"); } //Verifica se o CPF é válido e se ele já foi cadastrado. if (ValidacaoCpf.Verificar(entity.Cpf) == false) { throw new DadoInvalidoException($"O CPF: \"{entity.Cpf}\" é invalido!"); } else { obj = _medicoRepositorio.SelecionarPorCpf(entity.Cpf); if (obj != null && obj.Id != id) { throw new ConflitoException($"O CPF: \"{entity.Cpf}\", já foi cadastrado!"); } else if (_pacienteRepositorio.SelecionarPorCpf(entity.Cpf) != null) { throw new ConflitoException($"O CPF: \"{entity.Cpf}\", já foi cadastrado!"); } } //Verifica se o email já foi casatrado. obj = _medicoRepositorio.SelecionarPorEmail(entity.Email); if (obj != null && id != obj.Id) { throw new ConflitoException($"O email: \"{entity.Email}\", já foi cadastrado!"); } //Verifica se o médico é maior de idade. if (Maioridade.Verificar(entity.DataNasc) == false) { throw new DadoInvalidoException("Idade inválida - Apenas maiores de 18 anos podem se cadastrar"); } entity.Id = id; _medicoRepositorio.Alterar(entity); return(_medicoRepositorio.SelecionarPorId(id)); }