private async Task RaiseInfractionCreatedAsync(long infractionId, InfractionCreationData data) { foreach (var handler in InfractionEventHandlers) { await handler.OnInfractionCreatedAsync(infractionId, data); } }
/// <inheritdoc /> public async Task <long> CreateAsync(InfractionCreationData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } var entity = data.ToEntity(); await ModixContext.Infractions.AddAsync(entity); await ModixContext.SaveChangesAsync(); entity.CreateAction.InfractionId = entity.Id; await ModixContext.SaveChangesAsync(); await RaiseInfractionCreatedAsync(entity.Id, data); await RaiseModerationActionCreatedAsync(entity.CreateActionId, new ModerationActionCreationData() { GuildId = (ulong)entity.CreateAction.GuildId, Type = entity.CreateAction.Type, Created = entity.CreateAction.Created, CreatedById = (ulong)entity.CreateAction.CreatedById }); return(entity.Id); }
/// <inheritdoc /> public Task OnInfractionCreatedAsync(long infractionId, InfractionCreationData data) { if (data.Duration != null) { SetNextUpdateTimerTrigger(data.Duration.Value); } return(Task.CompletedTask); }
/// <inheritdoc /> public Task OnInfractionCreatedAsync(long infractionId, InfractionCreationData data) { if (data.Duration is TimeSpan dataDuration && (!UpdateTimer.Enabled || (DateTimeOffset.Now + dataDuration) < _nextTick)) { SetNextUpdateTimerTrigger(dataDuration); } return(Task.CompletedTask); }
/// <inheritdoc /> public async Task <long> CreateAsync(InfractionCreationData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } var entity = data.ToEntity(); entity.Created = DateTimeOffset.Now; await ModixContext.Infractions.AddAsync(entity); await ModixContext.SaveChangesAsync(); return(entity.Id); }
/// <inheritdoc /> public async Task <long> CreateAsync(InfractionCreationData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } var entity = data.ToEntity(); await ModixContext.Set <InfractionEntity>().AddAsync(entity); await ModixContext.SaveChangesAsync(); entity.CreateAction.InfractionId = entity.Id; await ModixContext.SaveChangesAsync(); await RaiseInfractionCreatedAsync(entity.Id, data); await RaiseModerationActionCreatedAsync(entity.CreateAction); return(entity.Id); }