/// <summary>
 /// Deprecated Method for adding a new object to the Pessoa EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToPessoa(Pessoa pessoa)
 {
     base.AddObject("Pessoa", pessoa);
 }
        public ActionResult EditAluno(Aluno a, Pessoa p, Turma t)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                ViewBag.idTurma
                    = new SelectList(turmaModel.todasTurmas(), "idTurma", "Identificacao",
                        t);

                string erro = null;
                if (a.idAluno == 0)
                {
                    erro = alunoModel.adicionarAluno(a);
                }
                else
                {
                    erro = alunoModel.editarAluno(a);
                }
                if (erro == null)
                {
                    if (p.idPessoa == 0)
                    {
                        erro = "p.idPEssoa vazio";
                    }
                    return RedirectToAction("EditUsuario", new { idUsuario = 0, p.idPessoa });
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(a);
                }
            }
            return Redirect("/Shared/Restrito");
        }
 /// <summary>
 /// Create a new Pessoa object.
 /// </summary>
 /// <param name="idPessoa">Initial value of the idPessoa property.</param>
 /// <param name="nome">Initial value of the Nome property.</param>
 /// <param name="nascimento">Initial value of the Nascimento property.</param>
 /// <param name="cPF">Initial value of the CPF property.</param>
 public static Pessoa CreatePessoa(global::System.Int32 idPessoa, global::System.String nome, global::System.DateTime nascimento, global::System.String cPF)
 {
     Pessoa pessoa = new Pessoa();
     pessoa.idPessoa = idPessoa;
     pessoa.Nome = nome;
     pessoa.Nascimento = nascimento;
     pessoa.CPF = cPF;
     return pessoa;
 }
        public ActionResult EditTelefoneProfessor(Telefone t, TipoTelefone tt, Pessoa p)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                ViewBag.idTipoTelefone
                    = new SelectList(tipoTelefoneModel.todosTiposTelefones(),
                        "idTipoTelefone", "Descricao", tt);

                string erro = null;
                if (t.idTelefone == 0)
                {
                    erro = telefoneModel.adicionarTelefone(t);
                }
                else
                {
                    erro = telefoneModel.editarTelefone(t);
                }
                if (erro == null)
                {
                    if (p.idPessoa == 0)
                    {
                        erro = "p.idPEssoa vazio";
                    }
                    return RedirectToAction("IndexAluno");
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(t);
                }
            }
            return Redirect("/Shared/Restrito");
        }
        public ActionResult EditUsuario(Usuario u, Perfil p, Pessoa pa)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                u.idPerfil = 1;

                string erro = null;
                if (u.idUsuario == 0)
                {
                    erro = usuarioModel.adicionarUsuario(u);
                }
                else
                {
                    erro = usuarioModel.editarUsuario(u);
                }
                if (erro == null)
                {
                    if (pa.idPessoa == 0)
                    {
                        erro = "p.idPEssoa vazio";
                    }
                    return RedirectToAction("EditEndereco", new { idEndereco = 0, pa.idPessoa });
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(u);
                }
            }
            return Redirect("/Shared/Restrito");
        }
        public ActionResult EditPessoa(int id)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                Pessoa p;

                if (id == 0)
                {
                    ViewBag.Titulo = "Novo Aluno";
                    p = new Pessoa();
                }
                else
                {
                    ViewBag.Titulo = "Editar Aluno";
                    p = pessoaModel.obterPessoa(id);
                }
                return View(p);
            }
            return Redirect("/Shared/Restrito");
        }
        public ActionResult EditPessoa(Pessoa p)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                string erro = pessoaModel.validarPessoa(p);
                if (erro == null)
                {
                    if (p.idPessoa == 0)
                    {
                        erro = pessoaModel.adicionarPessoa(p);
                    }
                    else
                    {
                        erro = pessoaModel.editarPessoa(p);
                    }
                }

                if (erro == null)
                {
                    if (p.idPessoa == 0)
                    {
                        erro = "p.idPEssoa vazio";
                    }
                    return RedirectToAction("EditAluno", new { idAluno = 0, p.idPessoa });
                }
                else
                {
                    ViewBag.Error = erro;
                    return View(p);
                }
            }
            return Redirect("/Shared/Restrito");
        }
        public ActionResult EditUsuarioProfessor(Usuario u, Perfil p, Pessoa pa)
        {
            u.idPerfil = 2;

            string erro = null;
            if (u.idUsuario == 0)
            {
                erro = usuarioModel.adicionarUsuario(u);
            }
            else
            {
                erro = usuarioModel.editarUsuario(u);
            }
            if (erro == null)
            {
                if (pa.idPessoa == 0)
                {
                    erro = "p.idPEssoa vazio";
                }
                return RedirectToAction("EditEndereco", new { idEndereco = 0, pa.idPessoa });
            }
            else
            {
                ViewBag.Erro = erro;
                return View(u);
            }
        }
        public ActionResult EditEndereco(Endereco e, Estado estado, Cidade cidade, TipoEndereco tipo, Pessoa p)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                ViewBag.UF
                    = new SelectList(estadoModel.todosEstados(), "UF", "Descricao",
                        estado);
                ViewBag.idCidade
                    = new SelectList(cidadeModel.obterCidadesPorEstado(estado.UF),
                        "idCidade", "Descricao", cidade);
                ViewBag.idTipoEndereco
                    = new SelectList(tipoEnderecoModel.todosTiposEnderecos(),
                        "idTipoEndereco", "Descricao", tipo);

                string erro = null;
                if (e.idEndereco == 0)
                {
                    erro = enderecoModel.adicionarEndereco(e);
                }
                else
                {
                    erro = enderecoModel.editarEndereco(e);
                }
                if (erro == null)
                {
                    if (p.idPessoa == 0)
                    {
                        erro = "p.idPEssoa vazio";
                    }

                    return RedirectToAction("EditTelefone", new { idTelefone = 0, p.idPessoa });
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(e);
                }
            }
            return Redirect("/Shared/Restrito");
        }
        public ActionResult EditTelefoneProfessor(Telefone t, TipoTelefone tt, Pessoa p)
        {
            ViewBag.idTipoTelefone
                = new SelectList(tipoTelefoneModel.todosTiposTelefones(),
                    "idTipoTelefone", "Descricao", tt);

            string erro = null;
            if (t.idTelefone == 0)
            {
                erro = telefoneModel.adicionarTelefone(t);
            }
            else
            {
                erro = telefoneModel.editarTelefone(t);
            }
            if (erro == null)
            {
                if (p.idPessoa == 0)
                {
                    erro = "p.idPEssoa vazio";
                }
                return RedirectToAction("IndexProfessor");
            }
            else
            {
                ViewBag.Erro = erro;
                return View(t);
            }
        }
 public ActionResult Create(Pessoa p)
 {
     pessoaModel.adicionarPessoa(p);
     return RedirectToAction("Index");
 }
 public ActionResult EditProfessor(Professor professor, Pessoa pessoa)
 {
     string erro = null;
     if (professor.idProfessor == 0)
     {
         erro = professorModel.adicionarProfessor(professor);
     }
     else
     {
         erro = professorModel.editarProfessor(professor);
     }
     if (erro == null)
     {
         if (pessoa.idPessoa == 0)
         {
             erro = "p.idPEssoa vazio";
         }
         return RedirectToAction("EditUsuarioProfessor", new { idUsuario = 0, pessoa.idPessoa });
     }
     else
     {
         ViewBag.Erro = erro;
         return View(professor);
     }
 }
        public ActionResult EditAluno(Aluno a, Pessoa p, Turma t)
        {
            ViewBag.idTurma
                = new SelectList(turmaModel.todasTurmas(), "idTurma", "Identificacao",
                    t);

            string erro = null;
            if (a.idAluno == 0)
            {
                erro = alunoModel.adicionarAluno(a);
            }
            else
            {
                erro = alunoModel.editarAluno(a);
            }
            if (erro == null)
            {
                if (p.idPessoa == 0)
                {
                    erro = "p.idPEssoa vazio";
                }
                return RedirectToAction("EditUsuarioAluno", new { idUsuario = 0, p.idPessoa });
            }
            else
            {
                ViewBag.Erro = erro;
                return View(a);
            }
        }
 public ActionResult EditProfessor(Professor professor, Pessoa pessoa)
 {
     if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
     {
         string erro = null;
         if (professor.idProfessor == 0)
         {
             erro = professorModel.adicionarProfessor(professor);
         }
         else
         {
             erro = professorModel.editarProfessor(professor);
         }
         if (erro == null)
         {
             if (pessoa.idPessoa == 0)
             {
                 erro = "p.idPEssoa vazio";
             }
             return RedirectToAction("EditUsuario", new { idUsuario = 0, pessoa.idPessoa });
         }
         else
         {
             ViewBag.Erro = erro;
             return View(professor);
         }
     }
     return Redirect("/Shared/Restrito");
 }