public HttpResponseMessage Post([FromBody] Blog blog) { try { if (!ModelState.IsValid) { string errorMessages = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage)); return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessages)); } else { blog.ViewCount = 0; blog.UrlField = helper.GenerateSlug(blog.Title.ToString()); blogrepo.Insert(blog); var resp = Request.CreateResponse(HttpStatusCode.Created); resp.Headers.Location = new Uri(new Uri(Request.RequestUri, ".") + blog.BlogID.ToString()); return(resp); } } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Failed to create new blog." + e)); } }
public HttpResponseMessage Post([FromUri] int blog_id, [FromBody] Post post) { try { if (!ModelState.IsValid) { string errorMessages = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage)); return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessages)); } else { post.BlogID = blog_id; post.ModifiedDate = DateTime.Now; post.PublishedDate = DateTime.Now; post.ViewCount = 0; post.UrlField = helper.GenerateSlug(post.Title.ToString()); postrepo.Insert(post); var resp = Request.CreateResponse(HttpStatusCode.Created); resp.Headers.Location = new Uri(new Uri(Request.RequestUri, ".") + post.PostID.ToString()); return(resp); } } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Failed to create new post." + e)); } }
public async Task <IActionResult> Create([Bind("Title,Slug,Image,ImageContent,ImageFile,ImageContentFile,Description,ExpiredAt,FriendRewardType,FriendRewardAmount,FriendRewardIsPercent,FriendRewardExpiredAt,FanRewardType,FanRewardAmount,FanRewardLabel,FanRuleMinReferral,MerchantsId,OfferCategoriesId,Id,CreatedAt,UpdatedAt")] Offers offers) { if (ModelState.IsValid) { // Upload image to www/root if (offers.ImageFile != null) { offers.Image = UploadImages(offers.ImageFile); } if (offers.ImageContentFile != null) { offers.ImageContent = UploadImages(offers.ImageContentFile); } // Generate slug offers.Slug = _helper.GenerateSlug(offers.Title); // Insert data _context.Add(offers); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["MerchantsId"] = new SelectList(_context.Merchants, "Id", "Id", offers.MerchantsId); ViewData["OfferCategoriesId"] = new SelectList(_context.OfferCategories, "Id", "Id", offers.OfferCategoriesId); return(View(offers)); }
public async Task <IActionResult> Create([Bind("Name,Slug,OfficialUrl,CheckoutType,Id,CreatedAt,UpdatedAt")] Merchants merchants) { if (ModelState.IsValid) { // Generate slug merchants.Slug = _helper.GenerateSlug(merchants.Name); // Insert data _context.Add(merchants); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(merchants)); }
public static Province Upsert(Province entity) { if (null == entity) { return(null); } else if (string.IsNullOrWhiteSpace(entity.Name)) { return(null); } else if (string.IsNullOrWhiteSpace(entity.Slug)) { SlugHelper slugger = new SlugHelper(); entity.Slug = slugger.GenerateSlug(entity.Name); } Province province = Find(entity); if (null == province) { Insert(entity); return(entity); } else { Province.ShallowCopy(province, entity); Update(province); } return(province); }
public ActionResult Create(Blog blog) { if (!AuthorizeUser()) { return(RedirectToAction("Login", "Accounts")); } try { SlugHelper slugHelper = new SlugHelper(); blog.UserID = int.Parse(Session["user_id"].ToString()); blog.UrlField = slugHelper.GenerateSlug(blog.Title); repo.Insert(blog); return(RedirectToAction("Index")); } catch { var topicSelectList = new SelectList(topicRepo.GetAll(), "BlogTopicID", "Name", "1"); ViewBag.topicSelectList = topicSelectList; ViewBag.Message = "Failed to create a new blog."; return(View()); } }
public void ShouldProvideValidRepresentationOfTimeStampFromDate() { var targetDate = DateTime.UtcNow; var dateSlug = SlugHelper.GenerateSlug(targetDate); Assert.IsNotNullOrEmpty(dateSlug); }
//// Tag Cloud using sparc.tagcloud (lemmatisation) //private List<TagCloudTag> GenerateTagCloud() //{ // var analyzer = new TagCloudAnalyzer(); // var blogPostTags = _blogDbContext // .Tags // .Select(t => t.DisplayName) // .ToList(); // // blogPosts is an IEnumerable<String>, loaded from // // the database. // var tags = analyzer.ComputeTagCloud(blogPostTags); // // Shuffle the tags, if you like for a random // // display // tags = tags.Shuffle(); // return tags.ToList(); //} // Tag Cloud and tag information generated without sparc.tagcloud private List <TagInfo> GenerateTagInfo() { var blogPostTags = _blogDbContext .Tags .Select(t => t.DisplayName) .ToList(); var groupTags = blogPostTags.GroupBy(t => t) .OrderBy(t => t.Count()); var maxTagCount = groupTags.Last().Count(); var randomGroup = groupTags.OrderBy(a => Guid.NewGuid()); var tagInfoList = new List <TagInfo>(); foreach (var tag in randomGroup) { var helper = new SlugHelper(); var tagInfo = new TagInfo() { DisplayName = tag.Key, TagCount = tag.Count(), Category = GenerateCategory(tag.Count(), maxTagCount), UrlSlug = helper.GenerateSlug(tag.Key) }; tagInfoList.Add(tagInfo); } return(tagInfoList); }
public ActionResult Edit(int id, Blog blog) { if (!AuthorizeUser()) { return(RedirectToAction("Login", "Accounts")); } try { SlugHelper slugHelper = new SlugHelper(); Blog b = repo.Get(id); b.Title = blog.Title; b.Description = blog.Description; b.UrlField = slugHelper.GenerateSlug(blog.Title); b.TopicID = blog.TopicID; b.Private = blog.Private; repo.Update(b); return(RedirectToAction("Index")); } catch { var topicSelectList = new SelectList(topicRepo.GetAll(), "BlogTopicID", "Name", "1"); ViewBag.topicSelectList = topicSelectList; return(View()); } }
public async Task <IActionResult> PutForum(int id, Forum forum) { if (id != forum.Id) { return(BadRequest()); } var slugHelper = new SlugHelper(); forum.Slug = slugHelper.GenerateSlug(forum.Title); _context.Entry(forum).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ForumExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Create(Post post, int[] SelectedCategoryIds) { var rand = new Random(); var slug = SlugHelper.GenerateSlug(post.Title); while (await context.Posts.AnyAsync(t => t.Slug == slug)) { slug += rand.Next(1000, 9999); } post.Slug = slug; foreach (var selectedCatId in SelectedCategoryIds) { post.PostCategories.Add(new PostCategory { CategoryId = selectedCatId }); } if (!ModelState.IsValid) { return(View()); } await context.AddAsync(post); await context.SaveChangesAsync(); TempData["message.success"] = "Saved!"; return(RedirectToAction(nameof(Index))); }
public static Country Upsert(Country entity) { if (null == entity) { return(null); } else if (string.IsNullOrWhiteSpace(entity.Name)) { return(null); } else if (string.IsNullOrWhiteSpace(entity.Slug)) { SlugHelper slugger = new SlugHelper(); entity.Slug = slugger.GenerateSlug(entity.Name); } Country country = Find(entity); if (null == country) { Insert(entity); return(entity); } else { Country.ShallowCopy(country, entity); Update(country); } return(country); }
public void TestFullFunctionality() { SlugHelper helper = new SlugHelper(); Dictionary <string, string> tests = new Dictionary <string, string>(); tests.Add("E¢Ðƕtoy mÚÄ´¨ss¨sïuy !!!!! Pingüiño", "etoy-muasssiuy--pinguino"); tests.Add("QWE dfrewf# $%&!! asd", "qwe-dfrewf--asd"); tests.Add("You can't have any pudding if you don't eat your meat!", "you-cant-have-any-pudding-if-you-dont-eat-your-meat"); tests.Add("El veloz murciélago hindú", "el-veloz-murcielago-hindu"); tests.Add("Médicos sin medicinas medican meditando", "medicos-sin-medicinas-medican-meditando"); foreach (KeyValuePair <string, string> test in tests) { Assert.AreEqual(test.Value, helper.GenerateSlug(test.Key)); } }
public static District Upsert(District entity) { if (null == entity) { return(null); } else if (string.IsNullOrWhiteSpace(entity.Name)) { return(null); } else if (string.IsNullOrWhiteSpace(entity.Slug)) { SlugHelper slugger = new SlugHelper(); entity.Slug = slugger.GenerateSlug(entity.Name); } District district = Find(entity); if (null == district) { Insert(entity); return(entity); } else { District.ShallowCopy(district, entity); Update(district); } return(district); }
public IActionResult Create(PostCreateViewModel newspost, int[] SelectedCategoryIds, int[] SelectedTagIds) { var rand = new Random(); var slug = SlugHelper.GenerateSlug(newspost.Name); while (_context.Posts.Any(t => t.Slug == slug)) { slug += rand.Next(1000, 9999); } newspost.Slug = slug; foreach (var selectedCatId in SelectedCategoryIds) { newspost.PostCategories.Add(new PostCategory { CategoryId = selectedCatId }); } foreach (var selectedTagId in SelectedTagIds) { newspost.PostTags.Add(new PostTag { TagId = selectedTagId }); } string unique = fileUpload(newspost.Picture); var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var user = _context.Users.Single(u => u.Id == userId); if (!ModelState.IsValid) { return(View()); } var postModel = new Post { Content = newspost.Content, Name = newspost.Name, Categories = newspost.Categories, Tags = newspost.Tags, PostCategories = newspost.PostCategories, PostStatus = newspost.PostStatus, Picture = unique, PostTags = newspost.PostTags, Slug = newspost.Slug, AppUser = user }; _context.Add(postModel); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); }
public string SlugifyTheTitle(string title) { SlugHelper slugHelper = new SlugHelper(); string slugfyed = slugHelper.GenerateSlug(title); //check unique return reccomend return(slugfyed); }
public static string GenerateSlug(string text) { SlugHelper slugGenerator = new SlugHelper(); var slug = slugGenerator.GenerateSlug(text); return(slug); }
public void TestWhiteSpaceCollapsing() { const string original = "a b \n c \t d"; const string expected = "a-b-c-d"; var helper = new SlugHelper(); Assert.Equal(expected, helper.GenerateSlug(original)); }
private async Task <string> CreateSlug(string username) { string slug; SlugHelper helper = new SlugHelper(); slug = helper.GenerateSlug(username); return(await Task.FromResult(slug)); }
public static string Slugify(this string str) { if (str is null) { str = $"untitled-{Guid.NewGuid()}"; } return(Slugifier.GenerateSlug(str)); }
public void TestConfigForCollapsingDashes() { const string original = "foo & bar"; const string expected = "foo-bar"; var helper = new SlugHelper(); Assert.Equal(expected, helper.GenerateSlug(original)); }
/* * TODO: Javascript som anropar denna function som en GET när man skriver titel */ private async Task <string> CreateSlug(string slug) { string s; int i = 1; SlugHelper helper = new SlugHelper(); s = helper.GenerateSlug(slug); // Generate slug and search for duplicates while ((await _db.Posts.CountAsync(p => p.Slug == s)) > 0) { s = helper.GenerateSlug(slug + "-" + i); i++; } return(s); }
public void TestConfigForCollapsingDashesWithMoreThanTwoDashes() { const string original = "foo & bar & & & Jazz&&&&&&&&"; const string expected = "foo-bar-jazz"; var helper = new SlugHelper(); Assert.Equal(expected, helper.GenerateSlug(original)); }
public void TestDeniedCharacterDeletion() { const string original = "!#$%&/()="; const string expected = ""; var helper = new SlugHelper(); Assert.Equal(expected, helper.GenerateSlug(original)); }
public void TestDiacriticRemoval() { const string withDiacritics = "ñáîùëÓ"; const string withoutDiacritics = "naiueo"; var helper = new SlugHelper(); Assert.Equal(withoutDiacritics, helper.GenerateSlug(withDiacritics)); }
public void TestLoweCaseEnforcement() { const string original = "AbCdE"; const string expected = "abcde"; var helper = new SlugHelper(); Assert.Equal(expected, helper.GenerateSlug(original)); }
public async Task <RecipeDTO> AddAsync(RecipeDTO recipe) { //Validate recipe Validation(recipe); //Create recipe in DB var newRecipe = await dbAccess.Recipes.AddAsync(new Recipe() { Id = 0, Title = recipe.Title, Slug = String.Format("{0}-{1}", recipe.User.Id, SlugHelper.GenerateSlug(recipe.Title)), Instruction = recipe.Instruction, UserId = recipe.User.Id, CreatedAt = DateTime.Now }); //Create ingredientlines foreach (var ing in recipe.IngredientLines) { //Get or create the required ingredient Ingredient ingredient = (await dbAccess.Ingredients.FindByCondition(nameof(ing.Ingredient.Name), ing.Ingredient.Name)).FirstOrDefault(); if (ingredient == null) { var ingredientToBeCreated = new Ingredient(); ingredientToBeCreated.Id = 0; ingredientToBeCreated.Name = ing.Ingredient.Name; ingredient = await dbAccess.Ingredients.AddAsync(ingredientToBeCreated); } //Create the ingredientline IngredientLine ingredientLine = new IngredientLine(); ingredientLine.Id = 0; ingredientLine.RecipeId = newRecipe.Id; ingredientLine.IngredientId = ingredient.Id; ingredientLine.Amount = ing.Amount; ingredientLine.MeasureUnit = ConvertToEnum(ing.MeasureUnitText); var newIngredientLine = await dbAccess.IngredientLines.AddAsync(ingredientLine); } //Create images (if any) if (recipe.Images != null) { foreach (var image in recipe.Images) { var imageToBeCreated = new Image(); imageToBeCreated.Id = 0; imageToBeCreated.RecipeId = newRecipe.Id; imageToBeCreated.FileName = image.FileName; var newImage = await dbAccess.Images.AddAsync(imageToBeCreated); } } return(await GetByIdAsync(newRecipe.Id)); }
public IActionResult CreateCategory([FromBody] Category category) { var lang = Request.Headers["language"].ToString(); var errorMessages = new List <string>(); if (string.IsNullOrEmpty(category.Title_EN)) { errorMessages.Add(_translator.GetTranslation("VALIDATION.CATEGORY_TITLE_REQUIRED", lang)); } if (errorMessages.Count > 0) { return(BadRequest(new { errors = errorMessages })); } try { SlugHelper slugHelper = new SlugHelper(); var newCategory = new Category() { Title_EN = category.Title_EN, ImagePath = category.ImagePath, CreatedAt = DateTime.Now, CreatedBy = category.CreatedBy, Slug = slugHelper.GenerateSlug(category.Title_EN), Title_FR = category.Title_FR != null ? category.Title_FR : category.Title_EN, Slug_FR = category.Title_FR != null?slugHelper.GenerateSlug(category.Title_FR) : slugHelper.GenerateSlug(category.Title_EN), }; newCategory.UpdatedAt = newCategory.CreatedAt; newCategory.UpdatedBy = newCategory.CreatedBy; var createdCategory = _categoryRepository.Create(newCategory); return(Ok(new { category = createdCategory })); } catch { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } }
public async Task <ActionResult <Forum> > PostForum(Forum forum) { var slugHelper = new SlugHelper(); forum.Slug = slugHelper.GenerateSlug(forum.Title); _context.Forums.Add(forum); await _context.SaveChangesAsync(); return(CreatedAtAction("GetForum", new { id = forum.Id }, forum)); }
public async Task <BlogPostVM> Update(BlogPostUpdateVM request, string slug) { using var db = new SQLiteDBContext(); var blogPost = await db.BlogPosts.Include(x => x.Tags).FirstOrDefaultAsync(bp => bp.Slug == slug) ?? throw new NotFoundException(slug); #region IfTitleHasChanged if (request.Title != blogPost.Title && !string.IsNullOrEmpty(request.Title)) { var tags = new List <BlogPostTag>(blogPost.Tags); //Delete all referenced entities foreach (var item in blogPost.Tags) { db.BlogPostTags.Remove(item); } await db.SaveChangesAsync(); blogPost.Tags = null; db.BlogPosts.Remove(blogPost); await db.SaveChangesAsync(); //Add the post again with all the tags SlugHelper helper = new SlugHelper(); blogPost.Slug = helper.GenerateSlug(request.Title); await db.BlogPosts.AddAsync(blogPost); await db.SaveChangesAsync(); foreach (var tag in tags) { var postTag = new BlogPostTag() { TagId = tag.TagId, BlogPostId = blogPost.Slug }; await db.BlogPostTags.AddAsync(postTag); } await db.SaveChangesAsync(); blogPost.Tags = tags; } #endregion blogPost.UpdatedAt = DateTime.UtcNow; mapper.Map(request, blogPost); db.BlogPosts.Update(blogPost); await db.SaveChangesAsync(); var response = mapper.Map <BlogPostVM>(blogPost); return(response); }
public static string SlugFromTitle(string title) { var slugGenerator = new SlugHelper(); return slugGenerator.GenerateSlug(title); }