public async Task <SaveEventResult> SaveEvent(SaveEventCriteria criteria) { _saveValidator.ValidateAndThrow(criteria); return(new SaveEventResult() { IsSuccessful = true }); }
public async Task Create([Remainder] string query = null !) { using var setTyping = Context.Channel.EnterTypingState(); var discordOptions = _appOptions.CurrentValue.Discord; var guildOptions = await _guildOptionsManager.GetGuildOptions(new GuildOptionsCriteria() { GuildId = Context.Guild.Id }); var prefix = guildOptions?.Prefix ?? discordOptions.Prefix; var signupEmotes = guildOptions?.SignupEmotes ?? discordOptions.SignupEmotes; if (query is null) { await ReplyAsync($"Try `{prefix}create event <Title> on <Day> at <Time>`, (without `<>`)."); return; } var criteria = new CreateEventCriteria() { GuildId = Context.Guild.Id, Query = query, VoiceRegionId = Context.Guild.VoiceRegionId }; var result = await _eventsManager.CreateEvent(criteria); if (result?.Event is null || !result.IsSuccessful) { await ReplyAsync($"I'm sorry, I could not create an event for you. Try `{prefix}create event <Title> on <Day> at <Time>`."); return; } var ev = result.Event; var eventMsg = await ReplyAsync(message : null, isTTS : false, embed : ev.ToEmbed()); var emotes = signupEmotes.Select(x => Emote.TryParse(x, out var em) ? (IEmote)em : new Emoji(x)).ToList(); emotes.Add(new Emoji("🪑")); // Bench emotes.Add(new Emoji("🕑")); // Late emotes.Add(new Emoji("❌")); // Cancel _ = eventMsg.AddReactionsAsync(emotes.ToArray()); ev.CreationDateTime = eventMsg.Timestamp; ev.Id = eventMsg.Id; var saveCriteria = new SaveEventCriteria() { Event = ev }; _ = _eventsManager.SaveEvent(saveCriteria); }