public async Task <IHttpActionResult> Upload(int id)
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            var urlImage = string.Empty;

            var provider = new MultipartMemoryStreamProvider();
            await Request.Content.ReadAsMultipartAsync(provider);

            foreach (var file in provider.Contents)
            {
                var filename = file.Headers.ContentDisposition.FileName.Trim('\"');
                var buffer   = await file.ReadAsByteArrayAsync();

                //Do whatever you want with filename and its binaray data.
                urlImage = AwsBucket.StoreImage(buffer, filename);
            }

            var _guideService = new Services.GuideService();
            var article       = _guideService.GetArticle(id);

            article.BackgroundImageUrl = urlImage;
            _guideService.PostArticle(article);

            return(Json(urlImage));
        }
        public IHttpActionResult Remove(int id, FileRequest request)
        {
            if (string.IsNullOrEmpty(request.Key))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var key = request.Key.Substring(request.Key.Length - 40);

            AwsBucket.RemoveImage(key);

            var _guideService = new Services.GuideService();
            var article       = _guideService.GetArticle(id);

            article.BackgroundImageUrl = null;
            _guideService.PostArticle(article);

            return(Json(""));
        }