Example #1
0
        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));
        }