/// <inheritdoc /> public Task <bool> AnyAsync(ClaimMappingSearchCriteria criteria) => ModixContext.Set <ClaimMappingEntity>().AsNoTracking() .FilterBy(criteria) .AnyAsync();
/// <summary> /// Creates a new <see cref="PromotionCampaignRepository"/>, with the injected dependencies /// See <see cref="PromotionActionEventRepositoryBase"/> for details. /// </summary> public PromotionCampaignRepository(ModixContext modixContext, IMediator mediator) : base(modixContext, mediator) { }
/// <inheritdoc /> public Task <bool> AnyAsync(PromotionCommentSearchCriteria searchCriteria) => ModixContext.Set <PromotionCommentEntity>().AsNoTracking() .FilterBy(searchCriteria) .AnyAsync();
/// <inheritdoc /> public async Task <IReadOnlyCollection <DesignatedChannelMappingBrief> > SearchBriefsAsync(DesignatedChannelMappingSearchCriteria searchCriteria) => await ModixContext.Set <DesignatedChannelMappingEntity>().AsNoTracking() .FilterBy(searchCriteria) .AsExpandable() .Select(DesignatedChannelMappingBrief.FromEntityProjection) .ToArrayAsync();
public DBPromotionRepository(ModixContext context) { _context = context; }
/// <summary> /// Creates a new <see cref="GuildChannelRepository"/>. /// See <see cref="RepositoryBase(ModixContext)"/> for details. /// </summary> public GuildChannelRepository(ModixContext modixContext) : base(modixContext) { }
/// <inheritdoc /> public Task <bool> AnyAsync( DesignatedChannelMappingSearchCriteria criteria, CancellationToken cancellationToken) => ModixContext.Set <DesignatedChannelMappingEntity>().AsNoTracking() .FilterBy(criteria) .AnyAsync(cancellationToken);
public BehaviourConfigurationRepository(ModixContext modixContext) { _modixContext = modixContext; }
/// <summary> /// Creates a new <see cref="InfractionRepository"/>. /// See <see cref="ModerationActionEventRepositoryBase(ModixContext)"/> for details. /// </summary> public InfractionRepository(ModixContext modixContext, IEnumerable <IModerationActionEventHandler> moderationActionEventHandlers, IEnumerable <IInfractionEventHandler> infractionEventHandlers) : base(modixContext, moderationActionEventHandlers) { InfractionEventHandlers = infractionEventHandlers; }
/// <summary> /// Constructs a new <see cref="ConfigurationActionRepository"/> from the given dependencies. /// See <see cref="RepositoryBase"/> for details. /// </summary> public ConfigurationActionRepository(ModixContext modixContext) : base(modixContext) { }
public GuildConfigModule(ModixContext context) { _context = context; }
/// <summary> /// Creates a new <see cref="ClaimMappingRepository"/>. /// See <see cref="RepositoryBase(ModixContext)"/> for details. /// </summary> public ClaimMappingRepository(ModixContext modixContext) : base(modixContext) { }
/// <inheritdoc /> public async Task <IReadOnlyCollection <ClaimMappingBrief> > SearchBriefsAsync(ClaimMappingSearchCriteria criteria) => await ModixContext.Set <ClaimMappingEntity>().AsNoTracking() .FilterBy(criteria) .AsExpandable() .Select(ClaimMappingBrief.FromEntityProjection) .ToArrayAsync();
/// <inheritdoc /> public async Task <IReadOnlyCollection <long> > SearchIdsAsync(ClaimMappingSearchCriteria criteria) => await ModixContext.Set <ClaimMappingEntity>().AsNoTracking() .FilterBy(criteria) .Select(x => x.Id) .ToArrayAsync();
public async Task CreateAsync(MessageEntity message) { await ModixContext.Messages.AddAsync(message); await ModixContext.SaveChangesAsync(); }
public DiscordUserService(ModixContext context) { _context = context; }
public GuildConfigService(IGuild guild, ModixContext context) { _guildService = new DiscordGuildService(context); _guild = _guildService.ObtainAsync(guild).Result; }
/// <summary> /// Creates a new <see cref="GuildRoleRepository"/>. /// See <see cref="RepositoryBase(ModixContext)"/> for details. /// </summary> public GuildRoleRepository(ModixContext modixContext) : base(modixContext) { }
/// <summary> /// Creates a new <see cref="DesignatedChannelMappingRepository"/>. /// See <see cref="RepositoryBase(ModixContext)"/> for details. /// </summary> public DesignatedChannelMappingRepository(ModixContext modixContext) : base(modixContext) { }
/// <summary> /// Creates a new <see cref="ModerationActionRepository"/>. /// See <see cref="RepositoryBase(ModixContext)"/> for details. /// </summary> public ModerationConfigRepository(ModixContext modixContext) : base(modixContext) { }
/// <inheritdoc /> public async Task <IReadOnlyCollection <ulong> > SearchChannelIdsAsync(DesignatedChannelMappingSearchCriteria searchCriteria) => await ModixContext.Set <DesignatedChannelMappingEntity>().AsNoTracking() .FilterBy(searchCriteria) .Select(x => x.ChannelId) .ToArrayAsync();
/// <summary> /// Creates a new <see cref="TagRepository"/> with the injected dependencies /// See <see cref="RepositoryBase"/> for details. /// </summary> public TagRepository(ModixContext modixContext) : base(modixContext) { }
/// <summary> /// Creates a new <see cref="EmojiRepository"/> with the injected dependencies /// See <see cref="RepositoryBase"/> for details. /// </summary> public EmojiRepository(ModixContext modixContext) : base(modixContext) { }
public async Task <IReadOnlyCollection <PerUserMessageCount> > GetPerUserMessageCounts(ulong guildId, ulong userId, TimeSpan timespan, int userCount = 10) { var earliestDateTime = DateTimeOffset.UtcNow - timespan; var query = GetQuery(); var counts = await ModixContext.Query <PerUserMessageCount>() .AsNoTracking() .FromSql(query, new NpgsqlParameter(":GuildId", NpgsqlDbType.Bigint) { Value = unchecked ((long)guildId) }, new NpgsqlParameter(":UserId", NpgsqlDbType.Bigint) { Value = unchecked ((long)userId) }, new NpgsqlParameter(":StartTimestamp", NpgsqlDbType.TimestampTz) { Value = earliestDateTime }) .ToArrayAsync(); return(counts); string GetQuery() => $@" with guildCounts as ( select ""AuthorId"" as ""UserId"", row_number() over (order by count(*) desc) as ""Rank"", count(*) as ""MessageCount"", ""AuthorId"" = :UserId as ""IsCurrentUser"" from ""Messages"" where ""GuildId"" = :GuildId and ""Timestamp"" >= :StartTimestamp group by ""AuthorId"", ""GuildId"" ), currentUserCount as ( select ""UserId"", ""Rank"", ""MessageCount"", ""IsCurrentUser"" from guildCounts where ""UserId"" = :UserId ), guildCountsLimited as ( select ""UserId"", ""Rank"", ""MessageCount"", ""IsCurrentUser"" from guildCounts limit {userCount} ), unioned as ( select ""UserId"", ""Rank"", ""MessageCount"", ""IsCurrentUser"" from guildCountsLimited union select ""UserId"", ""Rank"", ""MessageCount"", ""IsCurrentUser"" from currentUserCount ), joined as ( select ""Username"", ""Discriminator"", ""Rank"", ""MessageCount"", ""IsCurrentUser"" from unioned inner join ""Users"" on ""Id"" = ""UserId"" ) select ""Username"", ""Discriminator"", ""Rank"", ""MessageCount"", ""IsCurrentUser"" from joined order by ""Rank"" asc"; }
/// <summary> /// Creates a new <see cref="DeletedMessageRepository"/>. /// See <see cref="ModerationActionEventRepositoryBase(ModixContext)"/> for details. /// </summary> public DeletedMessageRepository(ModixContext modixContext, IEnumerable <IModerationActionEventHandler> moderationActionEventHandlers) : base(modixContext, moderationActionEventHandlers) { }
public async Task UpdateStarboardColumn(MessageEntity message) { ModixContext.Messages.Update(message); await ModixContext.SaveChangesAsync(); }
/// <inheritdoc /> public async Task <PromotionCommentSummary> ReadSummaryAsync(long commentId) => await ModixContext.Set <PromotionCommentEntity>().AsNoTracking() .Where(x => x.Id == commentId) .AsExpandable() .Select(PromotionCommentSummary.FromEntityProjection) .FirstOrDefaultAsync();
public MessageRepository(ModixContext context) : base(context) { }
/// <summary> /// Creates a new <see cref="PromotionCommentRepository"/>, with the injected dependencies. /// </summary> public PromotionCommentRepository(ModixContext modixContext) : base(modixContext) { }
/// <inheritdoc /> public Task <ClaimMappingSummary> ReadAsync(long claimMappingId) => ModixContext.Set <ClaimMappingEntity>().AsNoTracking() .AsExpandable() .Select(ClaimMappingSummary.FromEntityProjection) .FirstOrDefaultAsync(x => x.Id == claimMappingId);