public virtual ActionResult Species(int?page = null, string sort = null, bool?sortAsc = null, string botanicalNameFilter = "", string commonNameFilter = "") { SpeciesBrowser browser = new SpeciesBrowser { PageIndex = page ?? 0, PageSize = 40, BotanicalNameFilter = botanicalNameFilter, CommonNameFilter = commonNameFilter, SortAscending = !sortAsc.HasValue || sortAsc.Value, SortProperty = "BotanicalName".Equals(sort) ? SpeciesBrowser.Property.BotanicalName : "CommonName".Equals(sort) ? SpeciesBrowser.Property.CommonName : "MaxHeight".Equals(sort) ? SpeciesBrowser.Property.MaxHeight : "MaxGirth".Equals(sort) ? SpeciesBrowser.Property.MaxGirth : "MaxCrownSpread".Equals(sort) ? SpeciesBrowser.Property.MaxCrownSpread : SpeciesBrowser.Property.BotanicalName }; var model = Repositories.Trees.ListAllMeasuredSpecies <GlobalMeasuredSpecies>(browser); var gridModel = new EntityGridModel <GlobalMeasuredSpecies>(model) { RowsPerPage = 40 }; if (Request.IsAjaxRequest()) { return(PartialView("GlobalSpeciesGridPartial", gridModel)); } return(View(gridModel)); }
public static ICriteria ApplySorting(this ICriteria criteria, SpeciesBrowser browser) { if (browser.SortProperty.HasValue) { switch (browser.SortProperty.Value) { case SpeciesBrowser.Property.BotanicalName: return(criteria.AddOrder(new Order("ScientificName", browser.SortAscending))); case SpeciesBrowser.Property.CommonName: return(criteria.AddOrder(new Order("CommonName", browser.SortAscending))); case SpeciesBrowser.Property.MaxHeight: return(criteria.AddOrder(new Order("MaxHeight", browser.SortAscending))); case SpeciesBrowser.Property.MaxGirth: return(criteria.AddOrder(new Order("MaxGirth", browser.SortAscending))); case SpeciesBrowser.Property.MaxCrownSpread: return(criteria.AddOrder(new Order("MaxCrownSpread", browser.SortAscending))); default: throw new NotImplementedException(); } } return(criteria); }
public EntityPage <T> ListAllMeasuredSpecies <T>(SpeciesBrowser browser) where T : MeasuredSpecies { return(CriteriaExtensions.ListAllEntitiesByBrowser <T>( browserFilterer: browser.HasFilters?criteria => criteria.ApplyFilters(browser) : (Action <ICriteria>)null, browserSorter: criteria => criteria.ApplySorting(browser), browserPager: criteria => criteria.ApplyPaging(browser))); }
public static ICriteria ApplyFilters(this ICriteria criteria, SpeciesBrowser browser) { if (!string.IsNullOrEmpty(browser.BotanicalNameFilter)) { criteria.Add(Restrictions.Like("ScientificName", browser.BotanicalNameFilter, MatchMode.Anywhere)); } if (!string.IsNullOrEmpty(browser.CommonNameFilter)) { criteria.Add(Restrictions.Like("CommonName", browser.CommonNameFilter, MatchMode.Anywhere)); } return(criteria); }