Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }