public async Task<ActionResult> LoginCallback(string code)
        {
            var config = Dependencies.GetConfig(Request.Url);
            var auth = new OAuth(config);
            var oauthResponse = await auth.RequestToken(code);

            FormsAuthentication.SetAuthCookie("steve", false);

            // Save the token to Mongo
            var repo = new UserRepository();
            var user = await repo.GetUser("steve");

            if (user == null)
            {
                user = new UserInfo
                {
                    Username = "******",
                    InstagramAccessToken = oauthResponse.AccessToken
                };

                await repo.InsertUser(user);
            }
            else
            {
                var update = Builders<UserInfo>.Update
                    .Set(u => u.InstagramAccessToken, oauthResponse.AccessToken);

                await repo.Collection.UpdateOneAsync(u => u.Username == "steve", update);
            }

            Dependencies.InstagramAuthToken = oauthResponse.AccessToken;

            return RedirectToAction("index");
        }        
        public override async Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
            var client = Dependencies.Client;
            var notifications = context.GetDataOrDefault<IEnumerable<InstagramNotification>>();

            var repo = new UserRepository();
            var user = await repo.GetUser("steve");
            var config = Dependencies.GetConfig(context.Request.RequestUri);

            var media = new Tags(config, new InstaSharp.Models.Responses.OAuthResponse
            {
                AccessToken = user.InstagramAccessToken,
                User = new InstaSharp.Models.UserInfo
                {
                    Username = "******"
                }
            });

            var result = await media.Recent(notifications.First().ObjectId);

            foreach (var image in result.Data)
            {
                hubContext.Value.Clients.All.showImage(image.Images.LowResolution.Url, image.User.Username, image.Caption.Text);
            }
            
            return;
        }