public async Task <IActionResult> EditarPerfil(int?pacienteId, int?personalId)
        {
            Perfil_ViewModel perfil = new Perfil_ViewModel();
            string           token  = HttpContext.Session.GetString("token");

            if (token == null)
            {
                TempData["Mensaje"] = "Sesion expirada,vuelva a hacer el log in por favor.";
                return(RedirectToAction("Login", "Manage"));
            }
            if (pacienteId != null)
            {
                Paciente paciente = await repo.FindPacienteById(pacienteId.GetValueOrDefault(), token);

                perfil.Paciente = paciente;
            }
            else
            {
                Personal personal = await repo.FindPersonalById(personalId.GetValueOrDefault(), token);

                perfil.Personal        = personal;
                ViewBag.Especialidades = await repo.GetEspecialidades();
            }
            int userId = int.Parse(HttpContext.Session.GetInt32("userLogged").ToString());

            TempData["userLogged"] = userId;
            ViewBag.UserId         = userId;

            return(View(perfil));
        }
        public async Task <IActionResult> EditarPerfil(Perfil_ViewModel p)
        {
            if (ModelState.IsValid)
            {
                string token = HttpContext.Session.GetString("token");
                if (token == null)
                {
                    TempData["Mensaje"] = "Sesion expirada,vuelva a hacer el log in por favor.";
                    return(RedirectToAction("Login", "Manage"));
                }
                int userLogged = 0;
                if (p.Paciente != null)
                {
                    await repo.EditarPaciente(p.Paciente.PacienteId, p.Paciente.DNI, p.Paciente.Nombre, p.Paciente.Apellidos, p.Paciente.Fecha_Nacimiento,
                                              p.Paciente.Sexo, p.Paciente.Telefono, p.Paciente.Ciudad, p.Paciente.Direccion, p.Paciente.CP, p.Paciente.Email, p.Paciente.NSS, token);

                    userLogged = p.Paciente.UserId;
                }
                if (p.Personal != null)
                {
                    await repo.EditarPersonal(p.Personal.PersonalId, p.Personal.DNI, p.Personal.Nombre, p.Personal.Apellidos, p.Personal.Fecha_Nacimiento,
                                              p.Personal.Telefono, p.Personal.Ciudad, p.Personal.Direccion, p.Personal.Email, p.Personal.NumColegiado, p.Personal.Turno,
                                              p.Personal.EspecialidadId, token);

                    userLogged = p.Personal.UserId;
                }
                return(RedirectToAction("VerPerfil", new { userLogged = userLogged }));
            }
            else
            {
                ViewBag.UserId = (int)TempData.Peek("userLogged");
                return(View(p));
            }
        }
        //GET: PerfilUsuario
        public async Task <IActionResult> VerPerfil(int userLogged)
        {
            string token = HttpContext.Session.GetString("token");

            if (token == null)
            {
                TempData["Mensaje"] = "Sesion expirada,vuelva a hacer el log in por favor.";
                return(RedirectToAction("Login", "Manage"));
            }
            string existe = await repo.ExisteTipoUsuario(userLogged);

            Perfil_ViewModel perfil = new Perfil_ViewModel();

            if (existe.Equals("Paciente"))
            {
                Paciente paciente = await repo.FindPaciente(userLogged, token);

                perfil.Paciente = paciente;
                ViewBag.Edad    = await repo.EdadPaciente(paciente.Fecha_Nacimiento);

                return(View(perfil));
            }
            else if (existe.Equals("Personal"))
            {
                Personal personal = await repo.FindPersonal(userLogged, token);

                perfil.Personal = personal;
                ViewBag.Edad    = await repo.EdadPaciente(personal.Fecha_Nacimiento);

                return(View(perfil));
            }
            else
            {
                Usuarios user = await repo.FindUser(userLogged, token);

                TempData["User"] = JsonConvert.SerializeObject(user);
                if (user.NombreRole.Equals("Médico"))
                {
                    return(RedirectToAction("CrearPersonal", "Personal"));
                }
                else
                {
                    return(RedirectToAction("CrearPaciente", "Paciente"));
                }
            }
        }