public Task <FindResults <Stack> > GetByFilterAsync(IExceptionlessSystemFilterQuery systemFilter, string userFilter, string sort, string field, DateTime utcStart, DateTime utcEnd, PagingOptions paging) { var search = new ExceptionlessQuery() .WithDateRange(utcStart, utcEnd, field ?? ElasticType.GetFieldName(s => s.LastOccurrence)) .WithSystemFilter(systemFilter) .WithFilter(userFilter) .WithPaging(paging) .WithSort(sort); search = !String.IsNullOrEmpty(sort) ? search.WithSort(sort) : search.WithSortDescending((Stack s) => s.LastOccurrence); return(FindAsync(search)); }
public Task <FindResults <PersistentEvent> > GetByFilterAsync(IExceptionlessSystemFilterQuery systemFilter, string userFilter, string sort, string field, DateTime utcStart, DateTime utcEnd, PagingOptions paging) { var search = new ExceptionlessQuery() .WithDateRange(utcStart, utcEnd, field ?? ElasticType.GetFieldName(e => e.Date)) .WithIndexes(utcStart, utcEnd) .WithSystemFilter(systemFilter) .WithFilter(userFilter) .WithPaging(paging); search = !String.IsNullOrEmpty(sort) ? search.WithSort(sort) : search.WithSortDescending((PersistentEvent e) => e.Date); return(FindAsync(search)); }
public Task <FindResults <Organization> > GetByCriteriaAsync(string criteria, PagingOptions paging, OrganizationSortBy sortBy, bool?paid = null, bool?suspended = null) { var filter = Query <Organization> .MatchAll(); if (!String.IsNullOrWhiteSpace(criteria)) { filter &= Query <Organization> .Term(o => o.Name, criteria); } if (paid.HasValue) { if (paid.Value) { filter &= !Query <Organization> .Term(o => o.PlanId, BillingManager.FreePlan.Id); } else { filter &= Query <Organization> .Term(o => o.PlanId, BillingManager.FreePlan.Id); } } if (suspended.HasValue) { if (suspended.Value) { filter &= (!Query <Organization> .Term(o => o.BillingStatus, BillingStatus.Active) && !Query <Organization> .Term(o => o.BillingStatus, BillingStatus.Trialing) && !Query <Organization> .Term(o => o.BillingStatus, BillingStatus.Canceled) ) || Query <Organization> .Term(o => o.IsSuspended, true); } else { filter &= ( Query <Organization> .Term(o => o.BillingStatus, BillingStatus.Active) && Query <Organization> .Term(o => o.BillingStatus, BillingStatus.Trialing) && Query <Organization> .Term(o => o.BillingStatus, BillingStatus.Canceled) ) || Query <Organization> .Term(o => o.IsSuspended, false); } } var query = new ExceptionlessQuery().WithPaging(paging).WithElasticFilter(filter); switch (sortBy) { case OrganizationSortBy.Newest: query.WithSortDescending((Organization o) => o.Id); break; case OrganizationSortBy.Subscribed: query.WithSortDescending((Organization o) => o.SubscribeDate); break; // case OrganizationSortBy.MostActive: // query.WithSortDescending((Organization o) => o.TotalEventCount); // break; default: query.WithSortAscending((Organization o) => o.Name.Suffix("keyword")); break; } return(FindAsync(query)); }