//
        // GET: /Funcionario/

        public ActionResult Index()
        {
            try
            {
                ViewBag.Title = "Listar - Recursos";
                Conexao.Ativar(true);
                Usuario umUsuario = (Usuario)Session["UsuarioLogado"];
                INegocio<Funcionario, int> umFuncBUS = new FuncionarioBUS(Conexao.Instacia, umUsuario.Funcionario.Empresa, umUsuario.Funcionario.Filial);
                List<Funcionario> lista = new List<Funcionario>();

                if (umUsuario.IsAdministrador)
                {
                    lista.AddRange(umFuncBUS.Listar());
                }
                else
                {
                    Funcionario umFuncionario = umFuncBUS.Consultar(umUsuario.Funcionario.Codigo);
                    lista.Add(umFuncionario);
                }

                return View(lista);
            }
            catch(Exception ex)
            {
                return View();
            }
            finally
            {
                if(Conexao.Instacia.State == ConnectionState.Open)
                {
                    Conexao.Ativar(false);
                }
            }
        }
        public void TestaConsultaFuncionario()
        {
            this.CriaInstancia();
            Empresa umaEmpresa = new Empresa();
            umaEmpresa.Codigo = "99";
            Filial umaFilial = new Filial();
            umaFilial.Codigo = "99";
            INegocio<Funcionario, int> func = new FuncionarioBUS(Conexao.Instacia, umaEmpresa, umaFilial);
            Funcionario f = func.Consultar(2);
            Assert.IsNotNull(f);

            Conexao.Ativar(false);
        }
        //
        // GET: /Agendamento/Create

        public ActionResult Create()
        {
            try
            {
                ViewBag.Title = "Cadastro - Agendamentos";
                Usuario umUsuario = (Usuario)Session["UsuarioLogado"];
                Conexao.Ativar(true);
                var agendamentoConsultor = new AgendamentosConsultor();
                agendamentoConsultor.Clientes = new ClienteBUS(Conexao.Instacia, umUsuario.Funcionario.Empresa, umUsuario.Funcionario.Filial).Listar();

                if (umUsuario.IsAdministrador)
                {
                    agendamentoConsultor.Funcionarios = new FuncionarioBUS(Conexao.Instacia, umUsuario.Funcionario.Empresa, umUsuario.Funcionario.Filial).Listar();
                }
                else
                {
                    INegocio<Funcionario, int> umFuncBUS = new FuncionarioBUS(Conexao.Instacia, umUsuario.Funcionario.Empresa, umUsuario.Funcionario.Filial);
                    List<Funcionario> funcionario = new List<Funcionario>();
                    funcionario.Add(umFuncBUS.Consultar(umUsuario.Funcionario.Codigo));
                    agendamentoConsultor.Funcionarios = funcionario;
                }
                agendamentoConsultor.Cliente = new Cliente();
                agendamentoConsultor.Funcionario = new Funcionario();
                agendamentoConsultor.Agendamentos[0].Todos = true;

                agendamentoConsultor.Agendamentos[0].Status = new Status { Codigo = 1 };
                ViewBag.Situacoes = CarregarStatus(umUsuario, agendamentoConsultor.Agendamentos[0]);
                return View(agendamentoConsultor);
            }
            catch (Exception ex)
            {
                return RedirectToAction("Index", new { st = "er" });
            }
            finally
            {
                if (Conexao.Instacia.State == ConnectionState.Open)
                {
                    Conexao.Ativar(false);
                }
            }
        }
        //
        // GET: /Funcionario/Details/5

        public ActionResult Details(int id)
        {
            try
            {
                ViewBag.Title = "Detalhes - Recursos";
                Conexao.Ativar(true);
                Usuario umUsuario = (Usuario)Session["UsuarioLogado"];
                INegocio<Funcionario, int> umFuncBUS = new FuncionarioBUS(Conexao.Instacia, umUsuario.Funcionario.Empresa, umUsuario.Funcionario.Filial);
                Funcionario umFuncionario = null;

                if (umUsuario.IsAdministrador)
                {
                    umFuncionario = umFuncBUS.Consultar(id);
                }
                else
                {
                    if (umUsuario.Funcionario.Codigo == id)
                    {
                        umFuncionario = umFuncBUS.Consultar(id);
                    }
                }

                if(umFuncionario != null)
                {
                    return View(umFuncionario);
                }

                return RedirectToAction("Index", new { st = "er" });
            }
            catch (Exception ex)
            {
                return RedirectToAction("Index", new { st = "er" });
            }
            finally
            {
                if(Conexao.Instacia.State == ConnectionState.Open)
                {
                    Conexao.Ativar(false);
                }
            }
        }