© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•3y ago•
3 replies
SWEETPONY

✅ Is it possible to simplify this litedb query?

All I want is to get total count, count of not delivered, not read, not confirmed. Actually I don't is it possible to do in 1 query

var totalNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Count();

var notDeliveredNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Where(model => !model.MessageState.IsDelivered)
    .Count();

var notReadNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Where( model => model.MessageState.IsDelivered 
           && !model.MessageState.IsRead )
    .Count();

var notConfirmedNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Where( model => model.MessageState.IsDelivered 
           && model.MessageState.IsRead
           && !model.ConfirmationState.RequiresConfirmation)
    .Count();
var totalNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Count();

var notDeliveredNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Where(model => !model.MessageState.IsDelivered)
    .Count();

var notReadNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Where( model => model.MessageState.IsDelivered 
           && !model.MessageState.IsRead )
    .Count();

var notConfirmedNotificationsCount = await _repository
    .Query()
    .Where(model => DateTimeOffset.Now <= model.ExpiresAt)
    .Where(model => model.To
        .Contains(operatorName))
    .Where( model => model.MessageState.IsDelivered 
           && model.MessageState.IsRead
           && !model.ConfirmationState.RequiresConfirmation)
    .Count();
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

❔ Is it possible to serialize this struct?
C#CC# / help
3y ago
✅ How to Simplify
C#CC# / help
3y ago