/// <summary>
 /// Altera os dados do paciente
 /// </summary>
 /// <param name="pacienteAlteracao">Paciente a ser alterado</param>
 public void AlterarDados(PacienteAlteracao pacienteAlteracao)
 {
     if (pacienteAlteracao == null)
     {
         throw new ArgumentException("Os dados do paciente devem ser preenchidos");
     }
     _PacienteRepository.AlterarDados(pacienteAlteracao);
 }
        public IActionResult AlterarDados(PacienteAlteracaoVM pModel)
        {
            try
            {
                ViewData[Constantes.ViewDataMensagemErro] = ViewData[Constantes.ViewDataMensagemRetorno] = null;
                /*Verifica se o modelo é valido, de acordo com os atributos da classe passado no parâmetro*/
                if (!ModelState.IsValid)
                {
                    return(View(pModel));
                }

                PacienteAlteracao pacienteAlteracao = _ServicePaciente.ConsultarPacientePorID(Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType));

                if (pacienteAlteracao == null)
                {
                    return(NoContent());
                }
                else if (!pacienteAlteracao.Senha.Equals(pModel.Senha))
                {
                    throw new Exception(Constantes.MensagemErroSenhaNaoLocalizada);
                }

                _ServicePaciente.AlterarDados(new PacienteAlteracao(Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType),
                                                                    pModel.Nome,
                                                                    pModel.Telefone,
                                                                    pModel.Login,
                                                                    pModel.Senha,
                                                                    pacienteAlteracao.CpfObjeto)
                {
                    ID = Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType)
                });

                ViewData[Constantes.ViewDataMensagemRetorno] = "Dados do paciente alterado com sucesso";

                /*Redireciona para a página Index.cshtml da pasta Login*/
                return(View(pModel));
            }
            catch (Exception ex)
            {
                ViewData[Constantes.ViewDataMensagemErro] = ex.Message;
                return(View(pModel));
            }
        }
        /// <summary>
        /// Método que altera os dados do paciente
        /// </summary>
        /// <param name="pacienteAlteracao">Paciente a ser alterado</param>
        public void AlterarDados(PacienteAlteracao pacienteAlteracao)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("DECLARE @ID INT");
            stringBuilder.AppendLine("DECLARE @CPF VARCHAR(14),@NOME VARCHAR(50), @TELEFONE VARCHAR(15), @SENHA VARCHAR(8)");
            stringBuilder.AppendLine($"SET @ID = {pacienteAlteracao.ID}");
            stringBuilder.AppendLine($"SET @CPF = '{pacienteAlteracao.CpfObjeto.Numero}'");
            stringBuilder.AppendLine($"SET @NOME = '{pacienteAlteracao.Nome}'");
            stringBuilder.AppendLine($"SET @TELEFONE = '{pacienteAlteracao.Telefone}'");
            stringBuilder.AppendLine($"SET @SENHA = '{pacienteAlteracao.Senha}'");
            stringBuilder.AppendLine("UPDATE USUARIO_TB");
            stringBuilder.AppendLine("SET");
            stringBuilder.AppendLine("    CPF = @CPF,");
            stringBuilder.AppendLine("    NOME = @NOME,");
            stringBuilder.AppendLine("    TELEFONE = @TELEFONE,");
            stringBuilder.AppendLine("    SENHA = @SENHA");
            stringBuilder.AppendLine("WHERE ID_USUARIO = @ID AND TP_USUARIO = 0");

            _UnitOfWork.Executar(stringBuilder.ToString());
        }
        public IActionResult AlterarDados(int ID)
        {
            if (ID == 0 || ID < 0)
            {
                return(BadRequest());
            }

            /*Se o usuário logado tenta alterar os dados de outro usuário*/
            if (Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType)
                != ID)
            {
                return(RedirectToAction("Index", "Home"));
            }

            PacienteAlteracaoVM pacienteAlteracaoVM = null;

            PacienteAlteracao pacienteAlteracao = _ServicePaciente.ConsultarPacientePorID(ID);

            if (pacienteAlteracao != null)
            {
                pacienteAlteracaoVM = new PacienteAlteracaoVM()
                {
                    ID               = pacienteAlteracao.ID,
                    Login            = pacienteAlteracao.Login,
                    Nome             = pacienteAlteracao.Nome,
                    Senha            = pacienteAlteracao.Senha,
                    SenhaConfirmacao = pacienteAlteracao.Senha,
                    Telefone         = pacienteAlteracao.Telefone
                };
            }

            if (pacienteAlteracaoVM == null)
            {
                return(NoContent());
            }

            return(View(pacienteAlteracaoVM));
        }