Ejemplo n.º 1
0
        public IActionResult UpdateArticle(ArticleModel article, IFormFile imageFile, string redirect)
        {
            if (imageFile != null)
            {
                CloudBlobContainer container = _azureStorageService.GetBlobContainer(_configuration["AzureStorageConnectionString"], "article-images");
                Uri storageUri = container.StorageUri.PrimaryUri;
                // USE THIS CODE IF THE STORAGE EMULATOR GETS REMADE AND GIVES YOU A HARD TIME
                //var permissions = container.GetPermissionsAsync().Result;
                //permissions.PublicAccess = BlobContainerPublicAccessType.Container;
                //container.SetPermissionsAsync(permissions);
                ArticleImageModel articleImage = new ArticleImageModel(storageUri, imageFile);
                articleImage.UploadedByUserId   = _userManager.GetUserId(this.User);
                articleImage.UploadedByUserName = this.User.Identity.Name;
                _imageService.UploadArticleImage(articleImage);

                article.ImageFileLocation = articleImage.ImageLocation;
                _articleService.UpdateArticle(article);
                return(RedirectToAction("EditArticle", new { articleId = article.ArticleId }));
            }
            _articleService.UpdateArticle(article);

            if (redirect.Equals("ArticleImageManager"))
            {
                return(RedirectToAction("ArticleImageManager", "ArticleImage", new { articleId = article.ArticleId }));
            }

            return(RedirectToAction("EditNewsletter", "Newsletter", new { article.NewsletterId }));
        }
Ejemplo n.º 2
0
        public bool UploadArticleImage(ArticleImageModel image)
        {
            bool success;

            try
            {
                var container = _azureStorageService.GetBlobContainer(AzureConncetionString, "article-images");
                var content   = ContentDispositionHeaderValue.Parse(image.ImageFile.ContentDisposition);
                var fileName  = content.FileName.Trim('"');

                // Get a reference to a Block Blob
                var blockBlob = container.GetBlockBlobReference(fileName);
                success = blockBlob.UploadFromStreamAsync(image.ImageFile.OpenReadStream()).IsCompletedSuccessfully;
                EnterImageIntoDatabase(image);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error in ArticleImageService/UploadArticleImage", ex);
                throw ex;
            }

            return(success);
        }