public ActionResult Busqueda([DataSourceRequest] DataSourceRequest request, int?codigo, string talle, string descripcion, int?terceroid, int?categoriaid, int?marcaid, int?page) { ViewBag.CategoriaId = new SelectList(_categoriaAppService.ObtenerTodo(), "Id", "Descripcion"); ViewBag.TerceroId = new SelectList(_terceroAppService.ObtenerTodo(), "Id", "Apellido"); ViewBag.MarcaId = new SelectList(_marcaAppService.ObtenerTodo(), "Id", "Descripcion"); try { if (codigo == null) { if (descripcion == "") { if (talle == "") { //NINGUN DROPDOWN VACIO if (terceroid != null && categoriaid != null && marcaid != null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProducto(terceroid, categoriaid, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } //DROPDOWN DE MARCA VACIO if (terceroid != null && categoriaid != null && marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductosinMarca(terceroid, categoriaid)).ToPagedList(page ?? 1, 4); return(View()); } //DROPDOWN DE CATEGORIA VACIO if (terceroid != null && categoriaid == null && marcaid != null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductosinCategoria(terceroid, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } //DROPDOWN DE PROVEEDOR VACIO if (terceroid == null && categoriaid != null && marcaid != null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductosinProveedor(categoriaid, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } //DROPDOWNS DE PROVEEDOR Y CATEGORIA VACIOS if (terceroid == null && categoriaid == null && marcaid != null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporMarca(marcaid)).ToPagedList(page ?? 1, 4); return(View()); } //DROPDOWNS DE PROVEEDOR Y MARCA VACIOS if (terceroid == null && categoriaid != null && marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporCategoria(categoriaid)).ToPagedList(page ?? 1, 4); return(View()); } //DROPDOWNS DE CATEGORIA Y MARCA VACIOS if (terceroid != null && categoriaid == null && marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporProveedor(terceroid)).ToPagedList(page ?? 1, 4); return(View()); } else { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.ObtenerTodo()).ToPagedList(page ?? 1, 4); return(View()); } } else { if (categoriaid == null && terceroid == null && marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProducto(talle)).ToPagedList(page ?? 1, 4); return(View()); } // buscar por talla y marca if (categoriaid == null && terceroid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporTalleyMarca(talle, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } // buscar por talla y proveedor if (categoriaid == null && marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporTalleyProveedor(talle, terceroid)).ToPagedList(page ?? 1, 4); return(View()); } // buscar por talla y categoria if (terceroid == null && marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporTalleyCategoria(talle, categoriaid)).ToPagedList(page ?? 1, 4); return(View()); } if (categoriaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporTallesinCategoria(talle, terceroid, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } if (terceroid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporTallesinProveedor(talle, categoriaid, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } if (marcaid == null) { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporTallesinMarca(talle, categoriaid, terceroid)).ToPagedList(page ?? 1, 4); return(View()); } else { return(View()); } } } else { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProducto(descripcion, terceroid, categoriaid, marcaid)).ToPagedList(page ?? 1, 4); return(View()); } } else { ViewBag.Productos = Mapper.Map <IEnumerable <Producto>, IEnumerable <ProductoViewModel> >(_productoAppService.BuscarProductoporCodigo(codigo)).ToPagedList(page ?? 1, 4); return(View()); } } catch (Exception ex) { return(View(ex.Message)); } }