public async Task<IHttpActionResult> PutInstagramImage(int id, InstagramImage instagramImage)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != instagramImage.Id)
            {
                return BadRequest();
            }

            db.Entry(instagramImage).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InstagramImageExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
        public async Task<IHttpActionResult> PostInstagramImage(InstagramImage instagramImage)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            db.InstagramImages.Add(instagramImage);
            await db.SaveChangesAsync();

            return CreatedAtRoute("DefaultApi", new { id = instagramImage.Id }, instagramImage);
        }
        public override async Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // Get the WebHook client
            InstagramWebHookClient client = Dependencies.Client;

            // Convert the incoming data to a collection of InstagramNotifications
            var notifications = context.GetDataOrDefault<IEnumerable<InstagramNotification>>();
            foreach (var notification in notifications)
            {
                logger.Debug("Received notification: " + notification.ObjectId);

                // Use WebHook client to get detailed information about the posted media
                var entries = await client.GetRecentGeoMedia(context.Id, notification.ObjectId);
                foreach (JToken entry in entries)
                {
                    logger.Debug("Object: " + entry.ToString());

                    InstagramPost post = entry.ToObject<InstagramPost>();
                    
                    // Image information 
                    if (post.Images != null)
                    {
                        InstagramMedia thumbnail = post.Images.Thumbnail;
                        InstagramMedia lowRes = post.Images.LowResolution;
                        InstagramMedia stdRes = post.Images.StandardResolution;

                        var InstImage = new InstagramImage();
                        InstImage.Address = stdRes.Address.ToString();
                        InstImage.Height = stdRes.Height;
                        InstImage.Width = stdRes.Width;
                        
                        SaveImage(InstImage);

                        logger.Debug("Saved image: " + InstImage.Address);
                    }
                }
            }
        }
 public async void SaveImage(InstagramImage instagramImage)
 {
     db.InstagramImages.Add(instagramImage);
     await db.SaveChangesAsync();
 }
 public async void SaveImage(InstagramImage instagramImage)
 {
     if (ModelState.IsValid)
     {
         db.InstagramImages.Add(instagramImage);
         await db.SaveChangesAsync();
     }   
 }