public IEnumerable <SelectListItem> Coordenadores(params object[] param)
        {
            // params[0] -> cabeçalho (Selecione..., Todos...)
            // params[1] -> SelectedValue
            string cabecalho     = param[0].ToString();
            string selectedValue = param[1].ToString();

            EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>();

            Sessao s = security.getSessaoCorrente();
            IEnumerable <App_Dominio.Repositories.UsuarioRepository> Usuarios = security.getUsuarios((int)Sistema.DWMIMOVEL, s.empresaId, "Coordenador");

            IList <SelectListItem> q = new List <SelectListItem>();

            if (cabecalho != "")
            {
                q.Add(new SelectListItem()
                {
                    Value = "", Text = cabecalho
                });
            }

            q = q.Union(from e in Usuarios.AsEnumerable()
                        orderby e.nome
                        select new SelectListItem()
            {
                Value    = e.usuarioId.ToString(),
                Text     = e.nome,
                Selected = (selectedValue != "" ? e.nome.Equals(selectedValue) : false)
            }).ToList();

            return(q);
        }
        public override IEnumerable <AreaAtendimentoViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>();

            IEnumerable <UsuarioRepository> q = security.getUsuarios((int)DWM.Models.Enumeracoes.Sistema.SINDMED, security.getSessaoCorrente().empresaId);

            string _descricao = param != null && param.Count() > 0 && param[0] != null ? param[0].ToString() : null;

            IEnumerable <AreaAtendimentoViewModel> query = (from are in db.AreaAtendimentos
                                                            where (_descricao == null || String.IsNullOrEmpty(_descricao) || are.descricao.StartsWith(_descricao.Trim()))
                                                            orderby are.descricao
                                                            select new AreaAtendimentoViewModel
            {
                areaAtendimentoId = are.areaAtendimentoId,
                descricao = are.descricao,
                codigo = are.codigo,
                usuario1Id = are.usuario1Id,
                usuario2Id = are.usuario2Id,
                PageSize = pageSize,
                TotalCount = (from are1 in db.AreaAtendimentos
                              where (_descricao == null || String.IsNullOrEmpty(_descricao) || are1.descricao.StartsWith(_descricao.Trim()))
                              select are1).Count()
            }).Skip((index ?? 0) * pageSize).Take(pageSize).ToList();



            return((from are in query
                    select new AreaAtendimentoViewModel
            {
                areaAtendimentoId = are.areaAtendimentoId,
                descricao = are.descricao,
                codigo = are.codigo,
                usuario1Id = are.usuario1Id,
                nome_usuario1 = are.usuario1Id.HasValue ? (from usu1 in q where usu1.usuarioId == are.usuario1Id select usu1.nome).FirstOrDefault() : "",
                usuario2Id = are.usuario2Id,
                nome_usuario2 = are.usuario2Id.HasValue ? (from usu2 in q where usu2.usuarioId == are.usuario2Id select usu2.nome).FirstOrDefault() : "",
                PageSize = are.PageSize,
                TotalCount = are.TotalCount
            }).ToList());
        }