Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }