コード例 #1
0
 public ShopifyServiceBusTriggerManager(IOrderReader orderReader, IOrderFilter orderCreatedFilter, IOrderToTrelloCardMapper orderMapper, TrelloClient trelloClient, ILogger <ShopifyServiceBusTriggerManager> logger, SheetsClient sheetsClient)
 {
     _orderReader        = orderReader;
     _orderCreatedFilter = orderCreatedFilter;
     _orderMapper        = orderMapper;
     _trelloClient       = trelloClient;
     _logger             = logger;
     _sheetsClient       = sheetsClient;
 }
コード例 #2
0
        public async Task ProcessMessageAsync()
        {
            var message   = this.Context.Message;
            var arguments = message.Content.Split(' ', StringSplitOptions.RemoveEmptyEntries);

            if (arguments.Length != 6 && arguments.Length != 7)
            {
                await message.Channel.SendMessageAsync("Invalid usage of !signup. Use like this: " + Description);

                return;
            }

            string          run, character;
            CharacterClass  charClassParsed;
            List <RaidRole> rolesParsed;
            bool            canFunnel, isValid;

            (isValid, run, character, charClassParsed, rolesParsed, canFunnel)
                = await ValidateAndParseSignupArguments(message, arguments);

            if (!isValid)
            {
                return;
            }
            var sheetsClient = new SheetsClient();
            await sheetsClient.Initialize();

            try
            {
                var mainUser = message.Author;
                if (message.MentionedUsers.Any())
                {
                    mainUser = message.MentionedUsers.First();
                }

                await sheetsClient.AddSignupAsync(character, rolesParsed.Contains(RaidRole.Tank), rolesParsed.Contains(RaidRole.Healer), rolesParsed.Contains(RaidRole.Dps), charClassParsed, canFunnel, false, mainUser.Username);

                await message.Channel.SendMessageAsync($"Successfully signed up: {character} for {mainUser.Mention} for {run}!");
            }
            catch (SheetsSignupException ex)
            {
                await message.Channel.SendMessageAsync($"{message.Author.Mention} - {ex.Message}");
            }
            catch (Exception ex)
            {
                await message.Channel.SendMessageAsync($"Signup attempt resulted in error, @sealslicer please check into it.");

                throw;
            }
        }
コード例 #3
0
        public async Task ProcessMessageAsync(string run, string character, string force = null)
        {
            var message   = this.Context.Message;
            var arguments = message.Content.Split(' ', StringSplitOptions.RemoveEmptyEntries);
            var isForce   = false;

            if (!string.IsNullOrEmpty(force))
            {
                isForce = true;

                if (!(await this.CheckRoleMembershipAsync("Banana Spider")))
                {
                    await message.Channel.SendMessageAsync("User cannot use the \"force\" parameter. Unauthorized.");

                    return;
                }
            }

            if (!SignupCommand.RunTypes.Contains(run, StringComparer.OrdinalIgnoreCase))
            {
                await message.Channel.SendMessageAsync("Invalid usage of !signup. Invalid 'runType/id' value.");

                return;
            }

            var sheetsClient = new SheetsClient();
            await sheetsClient.Initialize();

            try
            {
                await sheetsClient.RevokeSignupAsync(character, message.Author.Username, isForce);

                await message.Channel.SendMessageAsync($"Successfully Revoked: {character} for {message.Author.Mention} for {run}!");
            }
            catch (InvalidOperationException ex)
            {
                await message.Channel.SendMessageAsync(ex.Message);
            }
            catch (Exception ex)
            {
                await message.Channel.SendMessageAsync($"Revoke attempt resulted in error, @sealslicer please check into it.");

                throw;
            }
        }