private async Task ProcessAlert(List <string> args) { var topLevelAlertArgs = new [] { "create", "edit", "delete" }; if (args.Count == 0 || !topLevelAlertArgs.Contains(args[0].ToLower())) { await SendAlertCommandEmbed(); return; } if (!await _timeZoneService.HasTimeZoneSet(_event.Message.Author.Id)) { await _messageService.SendMessage(_event.Message.ChannelId, new OutgoingMessage { Content = "Please set your time zone first with: !plog mytime [timeZone]" }); return; } var method = args[0].ToLower(); args = args.Where((item, index) => index > 0).ToList(); switch (method) { case "create": await ProcessAlertCreate(args); break; case "edit": await ProcessAlertEdit(args); break; default: await ProcessAlertDelete(args); break; } }