using System.Collections.Generic;
using System.Threading.Tasks;
namespace MockDatabaseExample
public int Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
public int MessageType { get; set; }
public static class Domain
static async Task Main(string[] args)
var messagings = new List<Messaging>
new Messaging { Id = 1, UserId = 1, Date = DateTime.Today, MessageType = (int)Domain.MessageType.ADMINISTRATOR },
new Messaging { Id = 2, UserId = 1, Date = DateTime.Today, MessageType = (int)Domain.MessageType.USER },
new Messaging { Id = 3, UserId = 2, Date = DateTime.Today.AddDays(-1), MessageType = (int)Domain.MessageType.ADMINISTRATOR },
new Messaging { Id = 4, UserId = 1, Date = DateTime.Today, MessageType = (int)Domain.MessageType.ADMINISTRATOR },
new Messaging { Id = 5, UserId = 1, Date = DateTime.Today, MessageType = (int)Domain.MessageType.USER }
string sql = @"SELECT COUNT(DISTINCT m.Id) FROM Messagings m";
string todayLog = DateTime.Today.ToString("d");
string adminMessageTypeLog = ((int)Domain.MessageType.ADMINISTRATOR).ToString();
Console.WriteLine($"SQL Query: {sql}");
Console.WriteLine($"Parameters: userid = {userIdLog}, today = {todayLog}, administratorMessageType = {adminMessageTypeLog}");
var unreadMessagesCount = messagings
.Where(m => m.UserId.ToString() == userIdLog && m.Date.ToString("yyyy-MM-dd") == DateTime.Today.ToString("yyyy-MM-dd") && m.MessageType == (int)Domain.MessageType.ADMINISTRATOR)
Console.WriteLine($"Unread messages count: {unreadMessagesCount}");
await Task.CompletedTask;