public async Task InitializeTimeZoneAsync(CommandContext context)
        {
            using IBotAccessProvider dataAccessProvider = this.providerBuilder.Build();
            if (dataAccessProvider.GetUsersTimeZone(context.User.Id) != null)
            {
                await context.RespondAsync(
                    $"{context.User.Mention}, you already have a timezone set up. To update your timezone please type `time update`.");

                return;
            }

            await context.RespondAsync(
                "Please navigate to https://kevinnovak.github.io/Time-Zone-Picker/ and select your timezone. After you do please hit the copy button and paste the contents into the chat.");

            InteractivityExtension interactivity        = context.Client.GetInteractivity();
            InteractivityResult <DiscordMessage> result =
                await interactivity.WaitForMessageAsync(msg => msg.Author.Equals(context.Message.Author),
                                                        TimeSpan.FromMinutes(1));

            if (!result.TimedOut)
            {
                DateTimeZone test = this.timeZoneProvider.GetZoneOrNull(result.Result.Content);
                if (test != null)
                {
                    dataAccessProvider.AddUserTimeZone(context.Message.Author.Id, result.Result.Content);
                    await context.RespondAsync($"I set your timezone as {result.Result.Content} in all guilds I am a member of.");
                }
                else
                {
                    await context.RespondAsync("You provided me with an invalid timezone. Try again by typing `time init`.");
                }
            }
            else
            {
                await context.RespondAsync(
                    "You waited too long to respond.");
            }
        }