Пример #1
0
        public async Task <IActionResult> PostMediaArticle(int idArticle, List <IFormFile> files)
        {
            long size    = files.Sum(f => f.Length);
            var  uploads = Path.Combine(_hostingEnvironment.WebRootPath, "uploads");


            foreach (var file in files)
            {
                if (file.Length > 0)
                {
                    MediaArticle mediaArticle = new MediaArticle();
                    mediaArticle.Article = await _articleRepository.GetAsync(idArticle);


                    if (mediaArticle.Article != null)
                    {
                        string fileName = $"{rndNumber.Next()}-{idArticle}-{file.FileName}";

                        Media newMedia = new Media()
                        {
                            Name = fileName, Path = uploads
                        };

                        await _mediaRepository.InsertAsync(newMedia);

                        mediaArticle.Media = newMedia;

                        await _mediaArticleRepository.InsertAsync(mediaArticle);

                        var filePath = Path.Combine(uploads, fileName);
                        using (var fileStream = new FileStream(filePath, FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                    }
                    else
                    {
                        return(BadRequest());
                    }
                }
            }

            return(Ok());
        }
Пример #2
0
        public async Task <IActionResult> AddArticlePost(string titre, string text, int idCategory, IFormFile media)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);

            CategoryArticle c = new CategoryArticle {
                Id = idCategory
            };

            Membres m = new Membres {
                IdMembre = Convert.ToInt32(ViewBag.Id)
            };

            Article a = new Article {
                Titre = titre, Texte = text, Categorie = c, Auteur = m, Date = DateTime.Now
            };

            a = a.AddArticle();

            string NumeroUnique = Guid.NewGuid().ToString("N");


            var path   = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/MediasArticles", a.Id.ToString() + "-" + NumeroUnique + media.FileName);
            var stream = new FileStream(path, FileMode.Create);
            await media.CopyToAsync(stream);

            MediaArticle mediaArticle = new MediaArticle
            {
                Url       = "images/MediasArticles/" + a.Id.ToString() + "-" + NumeroUnique + media.FileName,
                IdArticle = a.Id
            };

            mediaArticle.AddMediaArticle();


            ArticlesCategoriesViewModel viewModel = new ArticlesCategoriesViewModel {
                Categories = c.GetAllCategory(), Articles = a.GetAllArticles(null, null)
            };

            return(View("ListArticles", viewModel));
        }