public async Task <int> AddEvent(CommandContext ctx, EventType type, string message, DateTime eventTime, ulong channelId = 0) { List <ulong> mentionedUserIds = new List <ulong>(); List <ulong> mentionedRoleIds = new List <ulong>(); ctx.Message.MentionedUsers.ToList().ForEach(user => mentionedUserIds.Add(user.Id)); ctx.Message.MentionedRoles.ToList().ForEach(user => mentionedRoleIds.Add(user.Id)); TimedEvent tEvent = new TimedEvent { Type = type, Message = message, EventTime = eventTime, UserId = ctx.User.Id, ChannelId = channelId > 0 ? channelId : ctx.Channel.Id, MentionUserIdList = mentionedUserIds.ToArray(), MentionRoleIdList = mentionedRoleIds.ToArray() }; tEvent.Id = (await ShimakazeBot.DbCtx.TimedEvents.AddAsync(tEvent)).Entity.Id; try { await ShimakazeBot.DbCtx.SaveChangesAsync(); } catch (Exception e) { await ctx.RespondAsync(e.Message); } return(AddAndStartEvent(EventInTimer.MakeTimer(tEvent), tEvent.Id) ? tEvent.Id : -1); }
private void SetEventTimers() { ShimakazeBot.DbCtx.TimedEvents.ToList().ForEach(tEvent => { AddAndStartEvent(EventInTimer.MakeTimer(tEvent), tEvent.Id); }); }