public ActionResult Find(AlimFindViewModel model) { //LoggerFactory.CreateLog().Debug(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller Begin")); //int totalCount = 0; try { // Add find logic here if (ModelState.IsValid) { if (model.OrderBy == null) { model.OrderBy = "Id"; } string sort = "Id"; var filtros = GenerateExpression(model); var pagedResult = _serviceAlim.FindPagedByFilter(filtros, null, 1, model.PageSize, model.OrderBy, "Asc", null, null); model.Paginate(pagedResult, ""); //var AlimDetails = _serviceAlim.Query( // new AlimQuery().Withfilter(filtros)) // .OrderBy(n => n.OrderBy("Id", "Asc")) // .SelectPage(1, model.PageSize, out totalCount); //var pagelist = new { total = totalCount, rows = AlimDetails.ToList() }; //var pagedResult = _serviceAlim.FindPagedByFilter(expression, includes, 1, model.PageSize, "Id", model.OrderBy, model.Ascendent, null, null); //model.Paginate(pagedResult, expression.SerializedExpression); TempData.Clear(); TempData.Add("FilterAlim", model); //LoggerFactory.CreateLog().Debug(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller End")); return(PartialView("_AlimFindPartialView", model)); } } catch (Exception ex) { //LoggerFactory.CreateLog().Error(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller ERROR"), ex); } ModelState.AddModelError("", PresentationResources.Error); return(View("AlimFindView", new AlimFindViewModel(_serviceAlim, _serviceFactConv, _serviceNt_Cant, _serviceAlim_Grp, _serviceAlim_Fuente, _serviceUniMed, _serviceRecProd, _serviceDesCant, _serviceRendCant))); }
// GET public ActionResult Find(int?page = 1, string sort = "Id", string sortDir = "ASC") { //LoggerFactory.CreateLog().Debug(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller Begin")); try { // Add find logic here AlimFindViewModel model; if (Request.IsAjaxRequest() && TempData.ContainsKey("FilterAlim")) { model = (AlimFindViewModel)TempData.Peek("FilterAlim"); var filtros = GenerateExpression(model); var pagedResult = _serviceAlim.FindPagedByFilter(filtros, null, page != null ? (int)page : model.PageIndex, model.PageSize, sort, sortDir, null, null); model.Paginate(pagedResult, ""); //var pagedResult = _serviceAlim.FindPagedByFilter(new CustomQuery<Alim> { SerializedExpression = model.Filter }, null, page != null ? (int)page : model.PageIndex, model.PageSize, sort, sortDir == "ASC", null); //model.Paginate(pagedResult, model.Filter); //LoggerFactory.CreateLog().Debug(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindPagedAlim Controller End")); return(PartialView("_AlimFindPartialView", model)); } else { TempData.Remove("FilterAlim"); model = new AlimFindViewModel(_serviceAlim, _serviceFactConv, _serviceNt_Cant, _serviceAlim_Grp, _serviceAlim_Fuente, _serviceUniMed, _serviceRecProd, _serviceDesCant, _serviceRendCant); //LoggerFactory.CreateLog().Debug(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller End")); return(View("AlimFindView", model)); } } catch (Exception ex) { //LoggerFactory.CreateLog().Error(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller ERROR"), ex); } return(RedirectToAction("Index", "Home")); }
//private static QueryObject<Alim> GenerateExpression(AlimFindViewModel model) private static IEnumerable <filterRule> GenerateExpression(AlimFindViewModel model) { //LoggerFactory.CreateLog().Debug(string.Format(CultureInfo.InvariantCulture, "Presentation Layer - FindAlim Controller Begin")); //var filters = JsonConvert.DeserializeObject<IEnumerable<filterRule>>(filterRules); //return Json(pagelist, JsonRequestBehavior.AllowGet); IList <filterRule> filtros = new List <filterRule>(); if (model != null) { if (model.Alim.Id.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "Id", value = model.Alim.Id.Value.ToString() }); } //And(d => d.Id == model.Alim.Id.Value); if (!string.IsNullOrEmpty(model.Alim.Nombre)) { filtros.Add(new filterRule() { op = "equal", field = "Nombre", value = model.Alim.Nombre }); } //And(d => d.Nombre.Contains(model.Alim.Nombre)); if (model.Alim.IdEstado.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "IdEstado", value = model.Alim.IdEstado.Value.ToString() }); } //And(d => d.IdEstado == model.Alim.IdEstado.Value); if (model.Alim.FactorRendimiento.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "FactorRendimiento", value = model.Alim.FactorRendimiento.Value.ToString() }); } //And(d => d.FactorRendimiento == model.Alim.FactorRendimiento.Value); if (model.Alim.FactorDescuento.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "FactorDescuento", value = model.Alim.FactorDescuento.Value.ToString() }); } //And(d => d.FactorDescuento == model.Alim.FactorDescuento.Value); if (model.Alim.Fraccionado.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "Fraccionado", value = model.Alim.Fraccionado.Value.ToString() }); } //And(d => d.Fraccionado == model.Alim.Fraccionado.Value); if (model.Alim.ConversionInyectado.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "ConversionInyectado", value = model.Alim.ConversionInyectado.Value.ToString() }); } //And(d => d.ConversionInyectado == model.Alim.ConversionInyectado.Value); if (model.Alim.FactorConversion.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "FactorConversion", value = model.Alim.FactorConversion.Value.ToString() }); } //And(d => d.FactorConversion == model.Alim.FactorConversion.Value); if (model.Alim.Inactivo.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "Inactivo", value = model.Alim.Inactivo.Value.ToString() }); } //And(d => d.Inactivo == model.Alim.Inactivo.Value); if (!string.IsNullOrEmpty(model.Alim.NomAbreviado)) { filtros.Add(new filterRule() { op = "equal", field = "NomAbreviado", value = model.Alim.NomAbreviado }); } //And(d => d.NomAbreviado.Contains(model.Alim.NomAbreviado)); if (!string.IsNullOrEmpty(model.Alim.NomCientifico)) { filtros.Add(new filterRule() { op = "equal", field = "NomCientifico", value = model.Alim.NomCientifico }); } //And(d => d.NomCientifico.Contains(model.Alim.NomCientifico)); if (model.Alim.esAlimento.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "esAlimento", value = model.Alim.esAlimento.Value.ToString() }); } //And(d => d.esAlimento == model.Alim.esAlimento.Value); if (model.Alim.NT_MedidaBase.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "NT_MedidaBase", value = model.Alim.NT_MedidaBase.Value.ToString() }); } //And(d => d.NT_MedidaBase == model.Alim.NT_MedidaBase.Value); if (model.Alim.IdUniMed.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "IdUniMed", value = model.Alim.IdUniMed.Value.ToString() }); } //And(d => d.IdUniMed == model.Alim.IdUniMed.Value); if (model.Alim.IdAlimGrp.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "IdAlimGrp", value = model.Alim.IdAlimGrp.Value.ToString() }); } //And(d => d.IdAlimGrp == model.Alim.IdAlimGrp.Value); if (model.Alim.IdAlimFte.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "IdAlimFte", value = model.Alim.IdAlimFte.Value.ToString() }); } //And(d => d.IdAlimFte == model.Alim.IdAlimFte.Value); if (model.Alim.FechaRegistro.HasValue) { filtros.Add(new filterRule() { op = "equal", field = "FechaRegistro", value = model.Alim.FechaRegistro.Value.ToString() }); } //And(d => d.FechaRegistro == model.Alim.FechaRegistro.Value); } return(filtros); //return new QueryObject<Alim>(expression ?? (d => true)); }