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 void can_find_1_record_out_of_10_that_match_address() { var criteria = CriteriaExtensions.BuildCriteria <Customer>(JsonConvert.DeserializeObject <IList <CriteriaGroup> >(TestStrings.OneCriteriaAddress)); var customers = Registry.CreateMany <Customer>(10).ToList(); customers.First().Address.Street = "123 Test St"; customers.Where(criteria).Count().ShouldEqual(1); }
public void can_find_1_record_out_of_10_that_match_criteria() { var criteria = CriteriaExtensions.BuildCriteria <Customer>(_criteriaGroups); var customers = Registry.CreateMany <Customer>(10).ToList(); customers.First().Name = "Skippy"; customers.Where(criteria).Count().ShouldEqual(1); }
public void find_zero_records_for_date_time_criteria() { var testData = TestStrings.NotEqualDateTime; var criteriaGroups = JsonConvert.DeserializeObject <IList <CriteriaGroup> >(testData); var criteria = CriteriaExtensions.BuildCriteria <Customer>(criteriaGroups); var customers = Registry.CreateMany <Customer>(1).ToList(); customers.First().BirthDay = DateTime.Parse("10/10/2015"); customers.Where(criteria).Count().ShouldEqual(0); }
public void find_zero_records_for_integer_criteria() { var testData = TestStrings.NotEqualInteger; var criteriaGroups = JsonConvert.DeserializeObject <IList <CriteriaGroup> >(testData); var criteria = CriteriaExtensions.BuildCriteria <Customer>(criteriaGroups); var customers = Registry.CreateMany <Customer>(1).ToList(); customers.First().Age = 10; customers.Where(criteria).Count().ShouldEqual(0); }
private IEnumerable <Criteria> BuildCriterias(HttpRequest request, string queryStringKey) { if (request?.Query?.ContainsKey(queryStringKey) == false) { return(Enumerable.Empty <Criteria>()); } // correlationId=eq:2b34cc25-cd06-475c-8f9c-c42791f49b46,timestamp=qte:01-01-1980,level=eq:debug,OR,level=eq:information var query = request.Query.FirstOrDefault(p => p.Key.Equals(queryStringKey, StringComparison.OrdinalIgnoreCase)); var items = query.Value.ToString().Split(','); var result = new List <Criteria>(); foreach (var item in items.Where(c => !c.IsNullOrEmpty())) { if (item.EqualsAny(new[] { "and", "or" })) { // TODO: AND / OR continue; } var name = item.SliceTill("="); var value = item.SliceFrom("="); var @operator = value.Contains(":", StringComparison.OrdinalIgnoreCase) ? value.SliceTill(":").Trim() : "eq"; result.Add( new Criteria( name.Trim(), CriteriaExtensions.FromAbbreviation(@operator), (value.Contains(":", StringComparison.OrdinalIgnoreCase) ? value.SliceFrom(":") : value).Trim().EmptyToNull())); // TODO: properly determine numeric oder not and pass to criteria } if (result.Count > 0) { this.logger.LogDebug($"{{LogKey:l}} [{request.HttpContext.GetRequestId()}] http filter criterias={result.Select(c => c.ToString()).ToString("|")}", LogKeys.InboundRequest); } return(result); }
public EntityPage <Site> ListAllSites(SiteBrowser browser) => CriteriaExtensions.ListAllEntitiesByBrowser <Site>( browserAliaser: criteria => criteria.CreateAlias("State", "state"), browserFilterer: browser.HasFilters ? criteria => criteria.ApplyFilters(browser) : (Action <ICriteria>)null, browserSorter: criteria => criteria.ApplySorting(browser), browserPager: criteria => criteria.ApplyPaging(browser));