public ActionResult Muestra(jQueryDataTableParamModel param, int IdEncuesta)
        {
            using (Entities db = new Entities())
            {

                var allCompanies = db.Ges_Muestra.Include("Dir_Establecimientos").Include("Ges_Encuestas").Where(x => x.IdEncuesta == IdEncuesta).ToList();
                IEnumerable<Ges_Muestra> filteredCompanies = allCompanies;
                if (!string.IsNullOrEmpty(param.sSearch))
                {
                    filteredCompanies = db.Ges_Muestra.Include("Dir_Establecimientos").Include("Ges_Encuestas").Where(x => x.IdEncuesta == IdEncuesta).ToList()
                           .Where(c => c.Dir_Establecimientos.NombreEstablecimiento.Contains(param.sSearch.ToUpper()));
                }
                else
                {
                    filteredCompanies = allCompanies;
                }
                var isNombreEstablecimientoSortable = Convert.ToBoolean(Request["bSortable_0"]);
                var isFechaRecepcionSortable = Convert.ToBoolean(Request["bSortable_1"]);
                var isRolSortable = Convert.ToBoolean(Request["bSortable_2"]);

                var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);
                Func<Ges_Muestra, string> orderingFunction = (emp =>
                                        sortColumnIndex == 0 && isNombreEstablecimientoSortable ? Convert.ToString(emp.Dir_Establecimientos.NombreEstablecimiento) :
                                        sortColumnIndex == 2 && isRolSortable ? Convert.ToString(emp.RolEstablecimiento.ToString()) :
                                        sortColumnIndex == 1 && isFechaRecepcionSortable ? emp.FechaRecepcion.ToString() :
                                        "");
                var sortDirection = Request["sSortDir_0"]; // asc or desc
                if (sortDirection == "asc")
                    filteredCompanies = filteredCompanies.OrderBy(orderingFunction);
                else
                    filteredCompanies = filteredCompanies.OrderByDescending(orderingFunction);
                var displayedCompanies = filteredCompanies
                         .Skip(param.iDisplayStart)
                         .Take(param.iDisplayLength);
                var result = from c in displayedCompanies
                             select new[] { c.Dir_Establecimientos.NombreEstablecimiento.ToString(), Convert.ToString(c.FechaRecepcion.ToString()), c.IdEncuesta.ToString(), "observacion", c.IdEncuesta.ToString() };
                return Json(new
                {
                    sEcho = param.sEcho,
                    iTotalRecords = allCompanies.Count(),
                    iTotalDisplayRecords = filteredCompanies.Count(),
                    aaData = result
                },
                            JsonRequestBehavior.AllowGet);
            }
        }
        public ActionResult ListaDeEncuestas(jQueryDataTableParamModel param)
        {
            using (Entities db = new Entities())
            {

                var allCompanies = db.Ges_Encuestas.Include("Glo_EstadoEncuesta").Include("Ges_Muestra").Include("Glo_TipoEncuesta").ToList();
                IEnumerable<Ges_Encuestas> filteredCompanies = allCompanies;
                if (!string.IsNullOrEmpty(param.sSearch))
                {
                    filteredCompanies = db.Ges_Encuestas.ToList()
                             .Where(c => c.NombreEncuesta.Contains(param.sSearch.ToUpper())
                                         ||
                              c.IdEncuesta.ToString().Contains(param.sSearch.ToUpper()));
                }
                else
                {
                    filteredCompanies = allCompanies;
                }
                var isIdSortable = Convert.ToBoolean(Request["bSortable_0"]);
                var isEstadoSorteable = Convert.ToBoolean(Request["bSortable_2"]);
                var isNombreEncuestaSortable = Convert.ToBoolean(Request["bSortable_1"]);

                var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);
                Func<Ges_Encuestas, string> orderingFunction = (emp =>
                                        sortColumnIndex == 0 && isIdSortable ? Convert.ToString(emp.IdEncuesta) :
                                        sortColumnIndex == 1 && isNombreEncuestaSortable ? Convert.ToString(emp.NombreEncuesta) :
                                        sortColumnIndex == 2 && isEstadoSorteable ? emp.Glo_EstadoEncuesta.GlosaEncuestaEstado.ToString() :
                                        "");
                var sortDirection = Request["sSortDir_0"]; // asc or desc
                if (sortDirection == "asc")
                    filteredCompanies = filteredCompanies.OrderBy(orderingFunction);
                else
                    filteredCompanies = filteredCompanies.OrderByDescending(orderingFunction);
                var displayedCompanies = filteredCompanies
                         .Skip(param.iDisplayStart)
                         .Take(param.iDisplayLength);
                var result = from c in displayedCompanies
                             select new[] { c.IdEncuesta.ToString(), c.NombreEncuesta.ToString(), c.Glo_EstadoEncuesta.GlosaEncuestaEstado.ToString(), c.FechaInicio.ToString(), c.Glo_TipoEncuesta.GlosaTipoEncuesta.ToString(), c.Ges_Muestra.Count().ToString() };
                return Json(new
                {
                    sEcho = param.sEcho,
                    iTotalRecords = allCompanies.Count(),
                    iTotalDisplayRecords = filteredCompanies.Count(),
                    aaData = result
                },
                            JsonRequestBehavior.AllowGet);
            }
        }
        public ActionResult ListaDeEmpresas(jQueryDataTableParamModel param)
        {
            using (Entities db = new Entities())
            {

                var allCompanies = db.Dir_Empresas.Include("Glo_Comunas").Include("Dir_Establecimientos").ToList();
                IEnumerable<Dir_Empresas> filteredCompanies = allCompanies;
                if (!string.IsNullOrEmpty(param.sSearch))
                {
                    filteredCompanies = db.Dir_Empresas.ToList()
                             .Where(c => c.RazonSocial.Contains(param.sSearch.ToUpper())
                                         ||
                              c.RutEmpresa.ToString().Contains(param.sSearch.ToUpper()));
                }
                else
                {
                    filteredCompanies = allCompanies;
                }
                var isRutSortable = Convert.ToBoolean(Request["bSortable_0"]);
                var isRazonSocialSortable = Convert.ToBoolean(Request["bSortable_1"]);
                var isComunaSortable = Convert.ToBoolean(Request["bSortable_2"]);

                var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);
                Func<Dir_Empresas, string> orderingFunction = (emp =>
                                        sortColumnIndex == 0 && isRutSortable ? Convert.ToString(emp.RutEmpresa) :
                                        sortColumnIndex == 2 && isComunaSortable ? Convert.ToString(emp.Glo_Comunas.NombreComuna) :
                                        sortColumnIndex == 1 && isRazonSocialSortable ? emp.Glo_Comunas.NombreComuna.ToString() :
                                        "");
                var sortDirection = Request["sSortDir_0"]; // asc or desc
                if (sortDirection == "asc")
                    filteredCompanies = filteredCompanies.OrderBy(orderingFunction);
                else
                    filteredCompanies = filteredCompanies.OrderByDescending(orderingFunction);
                var displayedCompanies = filteredCompanies
                         .Skip(param.iDisplayStart)
                         .Take(param.iDisplayLength);
                var result = from c in displayedCompanies
                             select new[] { c.RutEmpresa.ToString(), c.RazonSocial.ToString(), c.Glo_Comunas.NombreComuna.ToString(), c.RepresentanteLegal.ToString(), c.Dir_Establecimientos.Count().ToString() };
                return Json(new
                {
                    sEcho = param.sEcho,
                    iTotalRecords = allCompanies.Count(),
                    iTotalDisplayRecords = filteredCompanies.Count(),
                    aaData = result
                },
                            JsonRequestBehavior.AllowGet);
            }
        }