public async Task ProcessRolesAsync(string message) { if (message.Equals("done", StringComparison.OrdinalIgnoreCase)) { try { ulong raidId = await _raidService.PostRaidMessageAsync(_channel, _raid); _raidService.AddRaid(_raid, _guild.Id, _channel.Id, raidId); await UserExtensions.SendMessageAsync(_user, "Created the raid successfully."); } catch { } finally { _conversationService.CloseConversation(_user.Id); } return; } string invalidFormatMessage = "Invalid format. (format: [amount]:[Role name]). Type \"done\" to finish entering roles:"; try { if (!Parsers.TryParseRole(message, out int noPositions, out string roleName, out string roleDescription)) { await UserExtensions.SendMessageAsync(_user, invalidFormatMessage); return; } if (_raid.AddRole(noPositions, roleName, roleDescription)) { await UserExtensions.SendMessageAsync(_user, "Role added, please enter the next role or type \"done\""); } else { await UserExtensions.SendMessageAsync(_user, "Adding of the role failed! Maybe it did already exist.\nPlease enter the next role or type \"done\""); } } catch { await UserExtensions.SendMessageAsync(_user, invalidFormatMessage); } }
private async Task <bool> CreateRaid(string message) { StringReader strReader = new StringReader(message); if (!await SetTitleAsync(strReader.ReadLine())) { return(false); } if (!await SetChannelAsync(strReader.ReadLine())) { return(false); } if (!await SetDateAsync(strReader.ReadLine())) { return(false); } if (!await SetDurationAsync(strReader.ReadLine())) { return(false); } if (!await SetOrganisatorAsync(strReader.ReadLine())) { return(false); } if (!await SetGuildAsync(strReader.ReadLine())) { return(false); } if (!await SetVoiceChatAsync(strReader.ReadLine())) { return(false); } if (!await SetAccountTypeAsync(strReader.ReadLine())) { return(false); } string line = strReader.ReadLine(); while (line != null && Parsers.TryParseRole(line, out int noPositions, out string roleName, out string roleDecription)) { _raid.AddRole(noPositions, roleName, roleDecription); line = strReader.ReadLine(); } if (_raid.Roles.Count == 0) { await UserExtensions.SendMessageAsync(_user, $"No role was found."); return(false); } string description = string.Empty; while (line != null) { if (!string.IsNullOrEmpty(description)) { description += "\n"; } description += line; line = strReader.ReadLine(); } _raid.Description = description; return(true); }