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)); }
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" })); } }
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)); }
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); }
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)); } }
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)); } }
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()); }
public IActionResult NewArticle(NewArticleViewModel model) { return(View()); }