public async Task EndSignups() { if (SignupsData.Missions.Any(x => x.Editing == Mission.EditEnum.New && x.Owner == Context.User.Id)) { var mission = SignupsData.Missions.Single(x => x.Editing == Mission.EditEnum.New && x.Owner == Context.User.Id); if (SignupHelper.CheckMissionComplete(mission)) { var embed = new EmbedBuilder() .WithColor(Color.Green) .WithTitle(mission.Title) .WithDescription(mission.Description) .WithFooter(mission.Date.ToString()) .AddField("Zamknięcie zapisów:", mission.CloseTime.ToString()) .AddField("Wołanie wszystkich:", mission.MentionEveryone) .WithAuthor(Context.User); if (mission.Attachment != null) { embed.WithImageUrl(mission.Attachment); } mission.Modlist ??= "https://modlist.armaforces.com/#/download/default"; embed.AddField("Modlista:", mission.Modlist); _miscHelper.BuildTeamsEmbed(mission.Teams, embed); _miscHelper.CreateConfirmationDialog( _dialogs, Context, embed.Build(), dialog => { _dialogs.Dialogs.Remove(dialog); _ = SignupHelper.CreateSignupChannel(SignupsData, Context.User.Id, Context.Channel); ReplyAsync("No to lecim!"); }, dialog => { Context.Channel.DeleteMessageAsync(dialog.DialogID); _dialogs.Dialogs.Remove(dialog); ReplyAsync("Poprawiaj to szybko!"); }); } else { await ReplyAsync("Nie uzupełniłeś wszystkich informacji ciołku!"); } } else { await ReplyAsync("Co ty chcesz kończyć jak nic nie zacząłeś?"); } }
public async Task SaveChanges(bool announce = false) { if (SignupsData.Missions.Any(x => x.Editing == Mission.EditEnum.Started && x.Owner == Context.User.Id)) { var mission = SignupsData.Missions.Single(x => x.Editing == Mission.EditEnum.Started && x.Owner == Context.User.Id); await mission.Access.WaitAsync(-1); try { if (SignupHelper.CheckMissionComplete(mission)) { var guild = _client.GetGuild(_config.AFGuild); var channel = await SignupHelper.UpdateMission(guild, mission, SignupsData); mission.Editing = Mission.EditEnum.NotEditing; if (announce) { await channel.SendMessageAsync("@everyone Misja uległa modyfikacji, proszę zapoznać się z nowymi informacjami i dostosować swój beton."); } await ReplyAsync("Się robi szefie!"); } else { await ReplyAsync("Nie uzupełniłeś wszystkich informacji ciołku!"); } } catch (Exception e) { await ReplyAsync($"Oj, coś poszło nie tak: {e.Message}"); } finally { mission.Access.Release(); } } }