public async Task <IActionResult> Create(PostViewModel model) //создание поста { if (ModelState.IsValid) { Post post = new Post(); //создаём модель post.PostName = model.Name; post.CategoryId = model.Cat; post.content = model.Text; //кладём данные из входной модели post.PostDescr = TruncBody(post.content); //обрезаем текст лоя создания првеью ClaimsPrincipal currentUser = this.User; var currentUserID = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value; post.UserId = currentUserID; //автором ставим текущего пользователя post.PostDate = DateTime.Now; //дата тоже текущая string postslug = Slugifier.Transliterate(post.PostName); //создаётся slug-ссылка postslug = Slugifier.Slugify(postslug); post.PostSlug = postslug; String[] rawtags = model.Tags.Split(','); //входная строка тегов разбивается запятыми на отдельные теги _context.Add(post); //пост добавлне, работаем с тегами await _context.SaveChangesAsync(); var addedpost = await _context.Posts.SingleOrDefaultAsync(m => m.PostSlug == postslug); //находим id нового поста addedpost.PostSlug += "-" + addedpost.PostID.ToString(); //уникальность слагов _context.Update(addedpost); int redir = addedpost.PostID; foreach (string separtag in rawtags) //добавление, если необходимо, тегов { string tagname; if (separtag.Substring(0, 1) == " ") //Обрезает первый пробел { tagname = separtag.Substring(1, separtag.Length - 1); } else { tagname = separtag; //сохраняем имя тега } string tagtoadd = Slugifier.Transliterate(tagname); tagtoadd = Slugifier.Slugify(tagtoadd); //подготовка слага var tag = await _context.Tags.SingleOrDefaultAsync(m => m.TagSlug == tagtoadd); int tagid; if (tag == null) //добавление тега { Tag added = new Tag(); added.TagName = tagname; added.TagSlug = tagtoadd; _context.Tags.Add(added); await _context.SaveChangesAsync(); var addedtag = await _context.Tags.SingleOrDefaultAsync(m => m.TagSlug == tagtoadd); tagid = addedtag.TagId; } else { tagid = tag.TagId; } PostTag link = new PostTag(); //добавление связи "тег-пост" link.PostId = addedpost.PostID; link.TagId = tagid; _context.PostTags.Add(link); await _context.SaveChangesAsync(); //addedpost.PostTags.Add(link); //_context.Posts.Update(addedpost); //await _context.SaveChangesAsync(); } var Cat = _context.Categories.SingleOrDefault(p => p.CategoryId == model.Cat); Cat.postcount++; //увеличиваем количество постов в категории, к которой принадлежит данный пост _context.Update(Cat); await _context.SaveChangesAsync(); return(Redirect("/Comments/viewpost/" + redir)); } ViewData["CategoryId"] = new SelectList(_context.Categories, "CategoryId", "CatName", model.Cat); return(View(model)); }
public void SlugifierTest7() { var slug = Slugifier.Slugify("base_user"); Assert.AreEqual("base-user", slug); }
public void SlugifierTest8() { var slug = Slugifier.Slugify("base_user", Slugifier.Options.Ignore('_')); Assert.AreEqual("base_user", slug); }
public void SlugifierTest6() { var slug = Slugifier.Slugify("Haber Başlığı 1 (Update 1)"); Assert.AreEqual("haber-basligi-1-update-1", slug); }
public void SlugifierTest4() { var slug = Slugifier.Slugify("Wikipedia"); Assert.AreEqual("wikipedia", slug); }
public void SlugifierTest3() { var slug = Slugifier.Slugify("Αυτή είναι μια δοκιμή"); Assert.AreEqual("ayti-einai-mia-dokimi", slug); }
public void SlugifierTest2() { var slug = Slugifier.Slugify("JúST å fëw wørds"); Assert.AreEqual("just-a-few-words", slug); }
public void SlugifierTest1WithTrim() { var slug = Slugifier.Slugify(" Ahmet Ertuğrul Özcan "); Assert.AreEqual("ahmet-ertugrul-ozcan", slug); }