public async Task <long> CountByOrganizationIdAsync(string organizationId) { var options = new CrmQuery().WithOrganizationId(organizationId); var result = await CountAsync(options).AnyContext(); return(result.Total); }
public async Task <long> GetUnreadCountAsync(string organizationId, string userId) { var filter = (Filter <Notification> .Term(e => e.UserId, userId) || Filter <Notification> .Missing(e => e.UserId)) && Filter <Notification> .Not(f => f.Term(e => e.Readers, userId)); var options = new CrmQuery() .WithOrganizationId(organizationId) .WithElasticFilter(filter); var result = await CountAsync(options).AnyContext(); return(result.Total); }
public Task <FindResults <Notification> > GetAccessibleAsync(string organizationId, string userId, string query, PagingOptions page) { var filter = Filter <Notification> .Term(e => e.UserId, userId) || Filter <Notification> .Missing(e => e.UserId); var options = new CrmQuery() .WithOrganizationId(organizationId) .WithElasticFilter(filter) .WithSearchQuery(query, false) .WithSort("created", SortOrder.Descending) .WithPaging(page); return(FindAsync(options)); }
public async Task <FindResults <JObject> > GetEntriesAsync(string organizationId = null, DateTime?utcStartDate = null, DateTime?utcEndDate = null, string userFilter = null, string query = null, PagingOptions paging = null) { if (!utcStartDate.HasValue || utcStartDate == DateTime.MinValue) { utcStartDate = DateTime.UtcNow.AddDays(-3); } if (!utcEndDate.HasValue || utcEndDate == DateTime.MinValue) { utcEndDate = DateTime.UtcNow.AddMinutes(15); } var options = new CrmQuery() .WithFilter(userFilter) .WithOrganizationId(organizationId) .WithSearchQuery(query, false) .WithPaging(paging) .WithDateRange(utcStartDate, utcEndDate, "@timestamp") .WithSort("@timestamp", SortOrder.Descending) .WithIndexes(utcStartDate, utcEndDate); return(await FindAsAsync <JObject>(options)); }