Esempio n. 1
0
        public ActionResult Create(NewArticleViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var newArticle = new Article
                {
                    CategoryId      = vm.CategoryId,
                    IsPublic        = vm.IsPublic,
                    Title           = vm.Title,
                    ArticleVersion  = vm.ArticleVersion,
                    Summary         = vm.Summary,
                    Content         = vm.Content,
                    KeyWords        = vm.KeyWords,
                    IsFeatured      = vm.IsFeatured,
                    CreatedByUserId = WebUser.Id,
                    UpdatedByUserId = WebUser.Id,
                    Version         = 1
                };

                _articleRepository.Create(newArticle);
                _unitOfWork.Commit();

                return(RedirectToAction("Manage"));
            }

            ViewBag.CategoryId = new SelectList(_categoryRepository.GetAll(), "Id", "Title", vm.CategoryId);
            return(View(vm));
        }
        public ActionResult Publish()
        {
            string currentUserId = User.Identity.GetUserId();
            NewArticleViewModel newArticleViewModel = new NewArticleViewModel();

            newArticleViewModel.Id = currentUserId;

            return(View(newArticleViewModel));
        }
Esempio n. 3
0
        public IActionResult AddArticle(NewArticleViewModel articleModel)
        {
            if (!ModelState.IsValid)
            {
                var _errors = new List <string>();
                foreach (var _values in ModelState.Values)
                {
                    foreach (var _error in _values.Errors)
                    {
                        _errors.Add(_error.ErrorMessage);
                    }
                }
                return(Ok(new { check = false, message = string.Join(",  ", _errors) }));
            }

            string url = "";

            if (articleModel.File != null)
            {
                bool check;
                (check, url) = ImageHelper.SaveImage(articleModel.File, _webHostEnvironment);
                if (!check)
                {
                    if (url != null)
                    {
                        _logger.Log(Niche.Core.Enums.LogLevel.ERROR, url);
                    }

                    return(Ok(new { check = false, message = "Image could not be saved, try again later" }));
                }
            }

            try
            {
                var _author  = _authorService.Get(int.Parse(articleModel.AuthorId));
                var _tag     = _tagService.Get(int.Parse(articleModel.TagIds));
                var _article = _articleService.Add(new Article
                {
                    Id        = Support.GetID(),
                    AuthorId  = _author.AuthorId,
                    Body      = articleModel.Content,
                    CreatedOn = DateTime.UtcNow,
                    ImageURl  = url,
                    TagIds    = _tag.TagId,
                    Title     = articleModel.Title
                });

                return(Ok(new { check = true, message = "The article was successfully saved" }));
            }
            catch (Exception ex)
            {
                _logger.Log(Niche.Core.Enums.LogLevel.ERROR, ex.Message + ex.InnerException != null ? $" ,InnerException: {ex.InnerException.Message}" : "");

                return(Ok(new { check = false, message = "Failed to save" }));
            }
        }
Esempio n. 4
0
        public IActionResult New()
        {
            var categories = _db.Categories.ToList();
            var selectList = new List <SelectListItem>();

            categories.ForEach(x => selectList.Add(new SelectListItem(x.CategoryName, x.Id.ToString())));

            var vm = new NewArticleViewModel
            {
                Categories = selectList
            };

            return(View(vm));
        }
Esempio n. 5
0
        public async Task <ArticleViewModel> Create(NewArticleViewModel articleViewModel)
        {
            var article = _mapper.Map <Article>(articleViewModel);

            var validator = new ArticleValidate(article);

            validator.ValidateTitle();
            validator.ValidateText();

            await _articleRepository.InsertAsync(article);

            var result = await GetById(article.Id);

            return(result);
        }
Esempio n. 6
0
        public async Task <IActionResult> Create([FromBody] NewArticleViewModel articleViewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                var result = await _articleAppService.Create(articleViewModel);

                return(Ok(result));
            }
            catch (ArgumentException ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Esempio n. 7
0
        NewArticle(NewArticleViewModel newArticle)
        {
            if (!ModelState.IsValid)
            {
                return(View(newArticle));
            }

            if (!newArticle.CoverImage.IsPNGImage())
            {
                ModelState.AddModelError(nameof(newArticle.CoverImage),
                                         "Invalid PNG image.");
                return(View(newArticle));
            }

            string wwwrootDirectory = _webHostEnvironment.WebRootPath;
            string imagesDirectory  = Path.Combine(wwwrootDirectory, "images");
            string imageName        = Path.GetRandomFileName() + ".png";
            string imagePath        = Path.Combine(imagesDirectory, imageName);

            using (FileStream fileStream =
                       new FileStream(imagePath, FileMode.Create)) {
                newArticle.CoverImage.CopyTo(fileStream);
            }

            ApplicationUser user = await _userManager.GetUserAsync(User);

            Article article =
                new Article {
                Type   = newArticle.Type, Title = newArticle.Title,
                Body   = newArticle.Body, Image = imageName,
                Author = user
            };

            _context.Add(article);
            await _context.SaveChangesAsync();

            return(RedirectToAction("MyArticles"));
        }
        public ActionResult NewArticle(NewArticleViewModel data)
        {
            Article article = new Article
            {
                Title   = data.Title,
                Body    = data.Body,
                Summary = data.Summary,
            };

            article = ArticleService.FormatArticle(article);
            article.CreationDate = DateTime.Now;

            int id = articleRepository.AddArticle(article, data.Categories);

            if (id > 0)
            {
                return(RedirectToAction("Article", new { id }));
            }
            else
            {
                return(new HttpStatusCodeResult(500));
            }
        }
Esempio n. 9
0
        public async Task <IActionResult> New(NewArticleViewModel vm, [FromServices] IWebHostEnvironment env, int[] selectedCategories)
        {
            if (ModelState.IsValid)
            {
                string fileName = null;
                if (vm.CoverPhoto != null && vm.CoverPhoto.Length > 0)
                {
                    fileName = vm.CoverPhoto.GenerateFileName();
                    var savePath = Path.Combine(env.WebRootPath, "img", fileName);
                    using FileStream fs = new FileStream(savePath, FileMode.Create);
                    vm.CoverPhoto.CopyTo(fs);
                }

                if (vm.ContentPhotos != null && vm.ContentPhotos.Count > 0)
                {
                    string        resim = null;
                    List <string> paths = new List <string>();
                    string        path  = null;
                    foreach (var photo in vm.ContentPhotos)
                    {
                        path = Guid.NewGuid() + "_" + photo.FileName;
                        var savePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\img");
                        var filePath = Path.Combine(savePath, path);
                        await photo.CopyToAsync(new FileStream(filePath, FileMode.Create));

                        paths.Add(path);
                    }
                    resim = string.Join(",", paths);
                    //var data = resim.Split(',');

                    var article = new Article()
                    {
                        Title              = vm.Title,
                        Content            = vm.Content,
                        CharacterContent   = vm.CharacterContent,
                        Time               = vm.Time,
                        VideoPath          = vm.VideoPath,
                        CoverPhotoPath     = fileName,
                        ContentPhotosPaths = resim
                    };
                    //
                    //var ArtId = _db.Articles.OrderBy(x=>x.Id).Last().Id;

                    for (int i = 0; i < selectedCategories.Length; i++)
                    {
                        var tmp    = selectedCategories[i];
                        var data   = _db.Categories.FirstOrDefault(x => x.Id == tmp);
                        var ArtCat = new ArticleCategory
                        {
                            ArticleId  = article.Id,
                            Article    = article,
                            Category   = data,
                            CategoryId = data.Id
                        };
                        article.ArticleCategories.Add(ArtCat);
                    }
                    _db.Articles.Add(article);
                    _db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            return(View());
        }
Esempio n. 10
0
 public IActionResult NewArticle(NewArticleViewModel model)
 {
     return(View());
 }