Esempio n. 1
0
        public BootstrapTableResult <FidelizaContainer> ListadoFidelizacion(string sort = "Empresa.emp_rut", string order = "asc", int limit = 30, int offset = 0, string search = "")
        {
            CookieHeaderValue cookie = Request.Headers.GetCookies("Oficina").FirstOrDefault();
            int codOficina           = Convert.ToInt32(cookie.Cookies.FirstOrDefault(s => s.Name == "Oficina").Value);

            List <FidelizaContainer> salida = new List <FidelizaContainer>();
            BootstrapTableResult <FidelizaContainer> salida_final = new BootstrapTableResult <FidelizaContainer>();

            FidelizacionDataAccess.ObtenerEntidades().FindAll(x => x.cod_oficina == codOficina).ForEach(fide =>
            {
                FidelizaContainer fc = new FidelizaContainer();
                fc.Fidelizacion      = fide;
                fc.Representante     = RepresentanteempresaDataAccess.ObtenerPorID(fide.representante_id);
                fc.Empresa           = EmpresaDataAccess.ObtenerPorID(fc.Representante.emp_id);
                fc.ResultadoGestion  = ResultadogestionDataAccess.ObtenerEntidades().FindAll(d => d.fidelizacion_id == fide.fide_id);
                List <AmbitosContainer <AmbitosfidelizacionEntity> > ambits = new List <AmbitosContainer <AmbitosfidelizacionEntity> >();
                AmbitosfidelizacionDataAccess.ObtenerEntidades().FindAll(d => d.fidelizacion_id == fc.Fidelizacion.fide_id).ForEach(amf => {
                    AmbitosContainer <AmbitosfidelizacionEntity> saf = new AmbitosContainer <AmbitosfidelizacionEntity>();
                    saf.AmbitoFinal = amf;
                    saf.AmbitoArea  = AmbitosareaDataAccess.ObtenerPorID(amf.ambito_id);
                    saf.Area        = AreasDataAccess.ObtenerPorID(saf.AmbitoArea.area_id);
                    ambits.Add(saf);
                });
                fc.Ambitos = ambits;
                salida.Add(fc);
            });

            if (!string.IsNullOrEmpty(search))
            {
                salida = salida.FindAll(s => s.Empresa.emp_nombre.ToLower().Contains(search.ToLower()) ||
                                        s.Empresa.emp_rut.ToLower().Contains(search.ToLower().Replace(".", "")) ||
                                        s.Empresa.emp_holding.ToLower().Contains(search.ToLower())
                                        ).ToList();
            }

            switch (order)
            {
            case "asc":
                switch (sort)
                {
                case "Empresa.emp_rut":
                    salida = salida.OrderBy(o => o.Empresa.emp_rut).ToList();
                    break;

                case "Empresa.emp_nombre":
                    salida = salida.OrderBy(o => o.Empresa.emp_nombre).ToList();
                    break;

                case "Empresa.emp_holding":
                    salida = salida.OrderBy(o => o.Empresa.emp_holding).ToList();
                    break;

                case "Representante.rep_nombre":
                    salida = salida.OrderBy(o => o.Fidelizacion.fide_estamento).ToList();
                    break;

                case "Fidelizacion.fide_estamento":
                    salida = salida.OrderBy(o => o.Empresa.emp_nombre).ToList();
                    break;

                case "Fidelizacion.fide_fecha_calendario":
                    salida = salida.OrderBy(o => o.Fidelizacion.fide_fecha_calendario).ToList();
                    break;
                }
                break;

            case "desc":
                switch (sort)
                {
                case "Empresa.emp_rut":
                    salida = salida.OrderByDescending(o => o.Empresa.emp_rut).ToList();
                    break;

                case "Empresa.emp_nombre":
                    salida = salida.OrderByDescending(o => o.Empresa.emp_nombre).ToList();
                    break;

                case "Empresa.emp_holding":
                    salida = salida.OrderByDescending(o => o.Empresa.emp_holding).ToList();
                    break;

                case "Representante.rep_nombre":
                    salida = salida.OrderByDescending(o => o.Fidelizacion.fide_estamento).ToList();
                    break;

                case "Fidelizacion.fide_estamento":
                    salida = salida.OrderByDescending(o => o.Empresa.emp_nombre).ToList();
                    break;

                case "Fidelizacion.fide_fecha_calendario":
                    salida = salida.OrderByDescending(o => o.Fidelizacion.fide_fecha_calendario).ToList();
                    break;
                }
                break;
            }

            salida_final.total = salida.Count;
            salida_final.rows  = salida.Skip(offset).Take(limit).ToList();
            return(salida_final);
        }