public async Task <IActionResult> Add(ArticleAddViewModel articleAddViewModel) { if (ModelState.IsValid) { var articleAddDto = Mapper.Map <ArticleAddDto>(articleAddViewModel); var imageResult = await ImageHelper.Upload(articleAddViewModel.Title, articleAddViewModel.ThumbnailFile, PictureType.Post); articleAddDto.Thumbnail = imageResult.Data.FullName; var result = await _articleService.AddAsync(articleAddDto, LoggedInUser.UserName, LoggedInUser.Id); if (result.ResultStatus == ResultStatus.Success) { _toastNotification.AddSuccessToastMessage(result.Message, new ToastrOptions { Title = "Başarılı İşlem" }); return(RedirectToAction("Index", "Article")); } else { ModelState.AddModelError("", result.Message); } } var categories = await _categoryService.GetAllByNoneDeletedAndActiveAsync(); articleAddViewModel.Categories = categories.Data.Categories; return(View(articleAddViewModel)); }
public async Task <IActionResult> Post(ArticleAddViewModel request) { if (request == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(new MyUnprocessableEntityObjectResult(ModelState)); } var article = _mapper.Map <ArticleAddViewModel, Article>(request); article.LastModified = DateTime.Now; article.Createdtime = DateTime.Now; await _articleRepository.AddArticeAsync(article); if (!await _unitOfWork.SaveAsync()) { throw new Exception("Save Faild!"); } var viewModel = _mapper.Map <Article, ArticleAddViewModel>(article); var links = CreateLinks(article.Id); var dic = viewModel.ToDynamic() as IDictionary <string, object>; dic.Add("links", links); return(CreatedAtRoute("GetArticle", new { id = article.Id }, dic)); }
public ActionResult ArticleAdd(int?articleId, bool?confirmation) { Article article; if (articleId.HasValue) { ViewBag.EditMode = true; article = db.Articles.Find(articleId); article.Text = Server.HtmlDecode(article.Text); article.IntroText = Server.HtmlDecode(article.IntroText); } else { ViewBag.EditMode = false; article = new Article(); article.DateOfPublish = DateTime.Now; } var tags = db.ArticlesTags.OrderBy(tn => tn.Name).ToList(); List <TagCheck> tagsCheck = new List <TagCheck>(); foreach (var tag in tags) { var tagCheck = new TagCheck { Tag = tag, Value = false }; tagsCheck.Add(tagCheck); } var vm = new ArticleAddViewModel() { Article = article, ArticlesCategories = db.ArticlesCategories, TagsList = db.ArticlesTags.OrderBy(t => t.Name).ToList(), TagsListChecked = tagsCheck }; vm.Confirmation = confirmation; return(View("ArticleAdd", vm)); }
public async Task <IActionResult> Add(ArticleAddViewModel articleAddViewModel) { if (ModelState.IsValid) { var articleAddDto = Mapper.Map <ArticleAddDto>(articleAddViewModel); var imageResult = await ImageHelper.Upload(articleAddViewModel.Title, articleAddViewModel.ThumbnailFile, PictureType.Post); articleAddDto.Thumbnail = imageResult.Data.PictureName; //var userName = User.Identity.Name; var result = await _articleService.AddAsync(articleAddDto, LoggedInUser.UserName, LoggedInUser.Id); if (result.ResultStatus == ResultStatus.Success) { //TempData.Add("SuccessMessage", result.Message); Makale eklediğimizde success mesajını TempData ile gösteriyorduk. Bunu NToastNotify ile değiştirdik. _toastNotification.AddSuccessToastMessage(result.Message, new ToastrOptions { Title = "Başarılı İşlem!" }); return(RedirectToAction("Index", "Article")); } else { ModelState.AddModelError("", result.Message); } } var categories = await _categoryService.GetAllByNonDeletedAndActiveAsync(); articleAddViewModel.Categories = categories.Data.Categories; return(View(articleAddViewModel)); }
public async Task <IActionResult> AddArticle() { var model = new ArticleAddViewModel(); var result = await _categoryService.GetAll(); model.CategoryList = result.Data.ToList().Adapt <List <CategoryListViewModel> >(); return(View(model)); }
public IActionResult AddArticle(ArticleAddViewModel articleAddViewModel) { var result = _articleManager.AddArticle(Mapper.Map <ArticleEntity>(articleAddViewModel)); if (!result) { return(BadRequest(new { Code = 1002, Content = "文章添加失败" })); } return(Ok()); }
public IActionResult AddPost(ArticleAddViewModel model) { if (ModelState.IsValid) { var newArticle = new Article(); newArticle.title = model.title; newArticle.teaser = model.teaser; newArticle.body = model.articleBody; _articleData.Add(newArticle); return(RedirectToAction("Post", new { id = newArticle.id })); } return(View()); }
public IActionResult Add(ArticleAddViewModel data) { var article = new Article { Id = 0, Name = data.Name, Calories = data.Calories, NutrientIntakes = null }; if (_articleLogic.Add(AuthController.GetAuthUserId(User), article)) { return(RedirectToAction("List", "Article")); } ViewData["message"] = "Er ging iets fout"; return(View(data)); }
public async Task <IActionResult> AddArticle(ArticleAddViewModel model, IFormFile pic) { if (ModelState.IsValid) { var titleConv = new TitleConverter(); var urlConv = new UrlConverter(); if (pic != null) { var extension = Path.GetExtension(pic.FileName); var name = urlConv.StringReplace(model.Title) + extension; var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/img/article-cover/" + name); using var stream = new FileStream(path, FileMode.Create); await pic.CopyToAsync(stream); model.Picture = name; } var article = new Article() { Title = titleConv.TitleToPascalCase(model.Title), Content = model.Content.Replace(" ", " "), CategoryId = model.CategoryId, Url = urlConv.StringReplace(model.Title), Picture = model.Picture }; if (_context.Articles.Any(x => x.Title == model.Title)) { ViewBag.TitleExist = titleConv.TitleToPascalCase(model.Title); return(View(model)); } _articleService.Create(article); return(RedirectToAction("Index", "Article", new { area = "Admin" })); } return(View(model)); }
public async Task <IActionResult> Add(ArticleAddViewModel articleAddViewModel) { if (ModelState.IsValid) { var articleAddDto = Mapper.Map <ArticleAddDto>(articleAddViewModel); var imageResult = await ImageHelper.Upload(articleAddViewModel.Title, articleAddViewModel.ThumbnailFile, PictureType.Post); articleAddDto.Thumbnail = imageResult.Data.FullName; var result = _articleService.Add(articleAddDto, LoggedInUser.UserName, LoggedInUser.Id); if (result.ResultStatus == ResultStatus.Success) { _toastNotification.AddSuccessToastMessage(result.Message, new ToastrOptions { Title = "Başarılı İşlem!" }); return(RedirectToAction("Index")); } else { return(View(articleAddViewModel)); } } return(View(articleAddViewModel)); }
public ActionResult ArticleAdd(ArticleAddViewModel vm, List <HttpPostedFileBase> files, List <TagCheck> TagsListChecked) { if (vm.Article.ArticleId > 0) { //edycja newsa vm.Article.DateOfPublish = DateTime.Parse(Request.Form["DateOfPublish"]); vm.Article.AuthorId = User.Identity.GetUserId(); vm.Article.Text = Server.HtmlEncode(vm.Article.Text); string tagLine = ""; if (vm.TagsListChecked != null) { foreach (var tagChecked in vm.TagsListChecked) { if (tagChecked.Value == true) { if (tagLine == "") { tagLine = tagChecked.Tag.Name; } else { tagLine = tagLine + "," + tagChecked.Tag.Name; } } } } if (vm.Tags != null) { vm.Tags = vm.Tags + "," + tagLine; } else { vm.Tags = tagLine; } if (vm.Tags != null) { var tags = vm.Tags.Split(','); foreach (var tag in tags) { if (db.ArticlesTags.Where(n => n.Name == tag).Count() == 0) { db.ArticlesTags.Add(new ArticlesTag { Name = tag }); db.SaveChanges(); } ArticlesTag artTag = db.ArticlesTags.Where(n => n.Name == tag).First(); if (artTag.Name != "" || artTag.Name != " ") { db.ArticlesTagsConnections.Add(new ArticlesTagsConnection { ArticleId = vm.Article.ArticleId, ArticlesTagId = artTag.ArticlesTagId }); db.SaveChanges(); } } } db.Entry(vm.Article).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(RedirectToAction("ArticleAdd", new { confirmation = true })); } else { //dodawanie nowego newsa if (files != null && files.Count > 0) // != && { if (vm.Article.Title == null) { ModelState.AddModelError("", "Wpisz TYTUŁ."); } if (vm.Article.Text == null) { ModelState.AddModelError("", "Wpisz jakiś TEKST."); } if (vm.Article.Title == null || vm.Article.Text == null) { var articlesCategories = db.ArticlesCategories.ToList(); vm.ArticlesCategories = articlesCategories; return(View(vm)); } else { if (ModelState.IsValid) { //zapisywanie artykułu vm.Article.DateOfPublish = DateTime.Parse(Request.Form["DateOfPublish"]); vm.Article.Visible = vm.Article.Visible; vm.Article.AuthorId = User.Identity.GetUserId(); vm.Article.Text = Server.HtmlEncode(vm.Article.Text); vm.Article.IntroText = Server.HtmlEncode(vm.Article.IntroText); db.Entry(vm.Article).State = System.Data.Entity.EntityState.Added; db.SaveChanges(); ////////////////////////////////// //zapisywanie tagów string tagLine = ""; if (vm.TagsListChecked != null) { foreach (var tagChecked in vm.TagsListChecked) { if (tagChecked.Value == true) { if (tagLine == "") { tagLine = tagChecked.Tag.Name; } else { tagLine = tagLine + "," + tagChecked.Tag.Name; } } } } if (vm.Tags != null) { vm.Tags = vm.Tags + "," + tagLine; } else { vm.Tags = tagLine; } if (vm.Tags != null) { var tags = vm.Tags.Split(','); foreach (var tag in tags) { if (tag.Length > 0) { if (db.ArticlesTags.Where(n => n.Name == tag).Count() == 0) { db.ArticlesTags.Add(new ArticlesTag { Name = tag }); db.SaveChanges(); } ArticlesTag artTag = db.ArticlesTags.Where(n => n.Name == tag).First(); db.ArticlesTagsConnections.Add(new ArticlesTagsConnection { ArticleId = vm.Article.ArticleId, ArticlesTagId = artTag.ArticlesTagId }); db.SaveChanges(); } } } ///////////////////////////// //zapisywanie zdjec var photo = new ArticlesPhoto(); int i = 0; foreach (var file in files) { var fileExt = Path.GetExtension(file.FileName); var filename = Guid.NewGuid() + fileExt; var path = Path.Combine(Server.MapPath(AppConfig.ArticlesImagesFolderRelated), filename); file.SaveAs(path); photo.ArticleId = vm.Article.ArticleId; photo.FilePath = filename; photo.OrderNo = i; photo.Width = 1300; photo.Height = 722; db.ArticlesPhotos.Add(photo); db.SaveChanges(); i++; } ///////////////////////////////////////////////////////////////////////////////////////// return(RedirectToAction("ArticleAdd", new { confirmation = true })); } else { var articleCategories = db.ArticlesCategories.ToList(); vm.ArticlesCategories = articleCategories; return(View(vm)); } } } else { ModelState.AddModelError("", "Nie wskazano pliku."); var articleCategories = db.ArticlesCategories.ToList(); vm.ArticlesCategories = articleCategories; return(View("ArticleAdd", vm)); } } }
public async Task <IActionResult> AddArticle(ArticleAddViewModel model) { //Needs to move business if (!ModelState.IsValid) { return(View(model)); } string wwwRootPath = _webHostEnvironment.WebRootPath; string fileName = Path.GetFileNameWithoutExtension(model.FileImageUrl.FileName); string extension = Path.GetExtension(model.FileImageUrl.FileName); string path = Path.Combine(wwwRootPath + "/uploads/", fileName + extension); using (var fileStream = new FileStream(path, FileMode.Create)) { await model.FileImageUrl.CopyToAsync(fileStream); } model.ImageUrl = model.FileImageUrl.FileName; model.SeoUrl = model.SeoUrl.ReplaceSeoUrl(); var result = await _articleService.GetBySeoUrl(model.SeoUrl); if (result.Success && result.Data != null) { ModelState.AddModelError("SeoUrl", "SeoUrl is already taken"); return(View(model)); } var tags = model.TagName.Split(","); var article = model.Adapt <Article>(); for (int i = 0; i < tags.Length; i++) { var tagRelation = new ArticleTagRelation { Id = Guid.NewGuid(), CreatedDate = DateTime.Now }; var getTag = await _tagService.FindIdByName(tags[i]); if (getTag.Data != null) { tagRelation.TagId = getTag.Data.Id; } else { var tagModel = new Tag { Name = tags[i], SeoUrl = tags[i].ReplaceSeoUrl(), CreatedDate = DateTime.Now, Id = Guid.NewGuid() }; await _tagService.Create(tagModel); tagRelation.Tag = new Tag { Id = tagModel.Id, CreatedDate = DateTime.Now, Name = tagModel.Name, SeoUrl = tagModel.SeoUrl }; tagRelation.TagId = tagModel.Id; } article.ArticleTagRelations.Add(tagRelation); } article.ArticleCategoryRelations.Add(new ArticleCategoryRelation { Id = Guid.NewGuid(), CategoryId = model.CategoryId, CreatedDate = DateTime.Now }); await _articleService.Create(article); return(RedirectToAction("Index")); }