public CommentEditReturnModel EditComment(int commentId, string content, string currUserId) { CommentEditReturnModel ret = new CommentEditReturnModel(); Comment cmd = _dbSet.FirstOrDefault(p => p.Id == commentId && p.AuthorId == currUserId); if (cmd == null) { ret.IsActionSucceed = false; return(ret); } else { cmd.Content = content; _dbSet.Update(cmd); if (_context.SaveChanges() != 0) { // return necessary information ret.Comment = new ReviewCommentDTO() { Id = cmd.Id, Content = TagHelpers.RemoveUnwantedTags(cmd.Content) }; ret.IsActionSucceed = true; } return(ret); } }
public override string RenderMjml() { var height = GetAttribute("height"); if (string.IsNullOrWhiteSpace(height)) { return(RenderContent()); } return($@" {TagHelpers.ConditionalTag($@" <table role=""presentation"" border=""0"" cellpadding=""0"" cellspacing=""0""> <tr> <td height=""{height}"" style=""vertical-align:top;height:{height};""> ")} {this.RenderContent()} {TagHelpers.ConditionalTag($@" </td> </tr> </table> ")} "); }
async public void Has_Relations() { // Assign var result = true; var tag = new Tag { FaqTags = new List <FaqTag> { new FaqTag(), }, }; DbContextFake.SeedDb <IntranetApiContext>(c => c.Tags.Add(tag)); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { // Act result = await TagHelpers.HasNoRelatedEntities(context.Tags.SingleOrDefault(), context); } using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { // Assert Assert.False(result); } }
public MemoryCacheBenchmark() { var current = new DirectoryInfo(AppContext.BaseDirectory); while (current != null && !File.Exists(Path.Combine(current.FullName, "taghelpers.json"))) { current = current.Parent; } var tagHelperFilePath = Path.Combine(current.FullName, "taghelpers.json"); var tagHelperBuffer = File.ReadAllBytes(tagHelperFilePath); // Deserialize from json file. var serializer = new JsonSerializer(); serializer.Converters.Add(new TagHelperDescriptorJsonConverter()); using (var stream = new MemoryStream(tagHelperBuffer)) using (var reader = new JsonTextReader(new StreamReader(stream))) { TagHelpers = serializer.Deserialize <IReadOnlyList <TagHelperDescriptor> >(reader); TagHelperHashes = TagHelpers.Select(th => th.GetHashCode()).ToList(); } // Set cache size to 400 so anything more then that will force compacts Cache = new MemoryCache <int, TagHelperDescriptor>(400); }
public override string RenderMjml() { var height = GetAttribute("height"); if (string.IsNullOrWhiteSpace(height)) { height = "20px"; } return($@" {TagHelpers.ConditionalTag($@" <table role=""presentation"" border=""0"" cellpadding=""0"" cellspacing=""0""> <tr> <td height=""{CssUnitParser.Parse(height).Value}"" style=""vertical-align:top;height:{height};""> ")} <div {HtmlAttributes(new Dictionary<string, string> { { "style", "div"} })} > </div> {TagHelpers.ConditionalTag($@" </td> </tr> </table> ")} "); }
public async Task <IActionResult> DeleteConfirmed(int id) { var faq = await _context.Faqs .Include(f => f.FaqTags) .ThenInclude(ft => ft.Tag) .Include(f => f.Category) .ThenInclude(c => c.Faqs) .SingleOrDefaultAsync(f => f.Id == id); if (faq.IsNull()) { return(NotFound()); } _context.Remove(faq); // If the category has no more related entities then delete the category as well if (await CategoryHelpers.HasNoRelatedEntities(faq.Category, _context, ignore: faq)) { _context.Remove(faq.Category); } // If the tags has no more related entities then delete the category as well foreach (var tag in faq.FaqTags.Select(ft => ft.Tag)) { if (await TagHelpers.HasNoRelatedEntities(tag, _context, ignore: faq.FaqTags)) { _context.Remove(tag); } } await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
protected override DriverResult Editor(TagsPart part, IUpdateModel updater, dynamic shapeHelper) { var model = new EditTagsViewModel(); updater.TryUpdateModel(model, Prefix, null, null); var tagNames = TagHelpers.ParseCommaSeparatedTagNames(model.Tags); // as the tag names are used in the route directly, prevent them from having ASP.NET disallowed chars // c.f., http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx var disallowedTags = tagNames.Where(x => DisalowedChars.Intersect(x).Any()).ToList(); if (disallowedTags.Any()) { _notifier.Warning(T("The tags \"{0}\" could not be added because they contain forbidden chars: {1}", String.Join(", ", disallowedTags), String.Join(", ", DisalowedChars))); tagNames = tagNames.Where(x => !disallowedTags.Contains(x)).ToList(); } if (part.ContentItem.Id != 0) { _tagService.UpdateTagsForContentItem(part.ContentItem, tagNames); } return(ContentShape("Parts_Tags_Edit", () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix))); }
public async Task <Post> Create(CreatePostDto dto) { User user = await _sessionService.GetUser(); Validate("create", dto.Content, dto.Title, user); var post = new Post { Title = dto.Title, Content = dto.Content, CreationTime = DateTime.Now, LastUpdateTime = DateTime.Now, AuthorId = user.Id, Likes = 0, Dislikes = 0, Tags = TagHelpers.GetTagsFromText(dto.Content), Id = Guid.NewGuid().ToString() }; await _postRepository.Create(post); _logger.LogInformation($"Post {post.Id} has been created"); await _tagRepository.Create(post.Tags.Select(x => new Tag { Name = x, PostsNumber = 1 }).ToArray()); _logger.LogInformation("Tags have been added"); return(post); }
public void Attach_Old_Tag() { // Assign var tags = new[] { "Test" }; var tag = new Tag { Id = 65, Name = "Test", }; var news = new News(); var faq = new Faq(); // Act TagHelpers.SetTags <News, NewsTag>(tags, news, new List <Tag> { tag }); TagHelpers.SetTags <Faq, FaqTag>(tags, faq, new List <Tag> { tag }); // Assert Assert.Equal(0, news.NewsTags.Single().NewsId); Assert.Equal(0, faq.FaqTags.Single().FaqId); Assert.Equal(65, news.NewsTags.Single().Tag.Id); Assert.Equal(65, faq.FaqTags.Single().Tag.Id); }
public override void FormatNode(IntermediateNodeFormatter formatter) { formatter.WriteContent(TagName); formatter.WriteProperty(nameof(TagHelpers), string.Join(", ", TagHelpers.Select(t => t.DisplayName))); formatter.WriteProperty(nameof(TagMode), TagMode.ToString()); formatter.WriteProperty(nameof(TagName), TagName); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Category,Title,Description,Tags")] PolicyViewModel policyVM) { if (id != policyVM?.Id) { return(NotFound()); } if (ModelState.IsValid) { var entity = await _context.Policies .Include(f => f.Category) .SingleOrDefaultAsync(c => c.Id == id); if (entity.IsNull()) { return(NotFound()); } if (!entity.Category.Title.Equals(policyVM.Category.Title, StringComparison.OrdinalIgnoreCase)) { var category = await _context.Categories.SingleOrDefaultAsync(c => c.Title.Equals(policyVM.Category.Title, StringComparison.OrdinalIgnoreCase)); if (category.IsNotNull()) { entity.Category = category; } else { entity.Category = new Category { Title = policyVM.Category.Title, Url = CustomUrlHelper.URLFriendly(policyVM.Category.Title), }; } } entity.Title = policyVM.Title; entity.Description = policyVM.Description; var file = Request.Form.Files.SingleOrDefault(); if (file.IsNotNull()) { var filename = await _fileStorageService.SetBlobAsync(file); entity.FileUrl = filename; } var tags = TagHelpers.GetTagsFromString(policyVM.Tags); var allTagEntities = GetAllTagEntitiesInternal(policyVM, tags); TagHelpers.SetTags <Policy, PolicyTag>(tags, entity, allTagEntities); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { Id = entity.Id })); } return(View(policyVM)); }
public bool TryWrite(object obj, Span <byte> span, bool _, out int bytesWritten) { if (!(_property.GetValue(obj) is CustomObject co)) { bytesWritten = 0; return(true); } return(TagHelpers.TryWriteString(ThingEquals, co.Thing, span, out bytesWritten)); }
public void Dont_Throw_On_Null() { // Assign // Act TagHelpers.SetTags <News, NewsTag>(null, null, null); TagHelpers.GetTagsFromString(null); // Assert }
public void ToBytesHelperTest() { var tag = new ILTagILInt(23); var bytes = TagHelpers.ToBytesHelper((s) => s.EncodeILInt(23)); Assert.IsNotNull(bytes); Assert.That(tag.EncodedBytes, Is.EquivalentTo(bytes)); var e = Assert.Throws <ArgumentException>(() => TagHelpers.ToBytesHelper(null)); Assert.AreEqual("serialize", e.ParamName); }
protected override byte[] ToBytes(Dictionary <string, T> value) => TagHelpers.ToBytesHelper(s => { if (value != null) { s.ILIntEncode((ulong)value.Count); foreach (var pair in value) { s.EncodeString(pair.Key); EncodeValue(s, pair.Value); } } });
public async Task <IActionResult> Create([Bind("Id,Category,Title,Description,Tags")] PolicyViewModel policyVM) { if (ModelState.IsValid) { var category = await _context .Categories .SingleOrDefaultAsync(c => c.Title.Equals(policyVM.Category.Title, StringComparison.OrdinalIgnoreCase)); if (category.IsNotNull()) { policyVM.Category = category; } else { policyVM.Category = new Category { Title = policyVM.Category.Title, Url = CustomUrlHelper.URLFriendly(policyVM.Category.Title), }; } var policy = new Policy { Category = policyVM.Category, Description = policyVM.Description, FileUrl = policyVM.FileUrl, Title = policyVM.Title, Url = CustomUrlHelper.URLFriendly(policyVM.Title), }; var file = Request.Form.Files.SingleOrDefault(); if (file.IsNotNull()) { var filename = await _fileStorageService.SetBlobAsync(file); policy.FileUrl = filename; } var tags = TagHelpers.GetTagsFromString(policyVM.Tags); var allTagEntities = GetAllTagEntitiesInternal(policyVM, tags); TagHelpers.SetTags <Policy, PolicyTag>(tags, policy, allTagEntities); await _context.AddAsync(policy); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { Id = policy.Id })); } ViewData["Categories"] = new SelectList(_context.Categories, nameof(Category.Id), nameof(Category.Title)); return(View(policyVM)); }
public CommentAddReturnModel PublishComment(string content, string currUserId, int reviewId = -1) { CommentAddReturnModel ret = new CommentAddReturnModel(); if (reviewId == -1) { ret.IsActionSucceed = false; return(ret); } Review review = _context.Set <Review>().FirstOrDefault(f => f.Id == reviewId); if (review == null) { ret.IsActionSucceed = false; return(ret); } ret.PostId = review.PostId.Value; ret.ReviewAuthorId = review.UserId; Comment comment = new Comment() { DateUtcAdd = DateTime.UtcNow, DateUtcModified = DateTime.UtcNow, ReviewId = reviewId, AuthorId = currUserId, Content = TagHelpers.RemoveUnwantedTags(content), }; _dbSet.Add(comment); if (_context.SaveChanges() != 0) { ret.Comment = new ReviewCommentDTO { Id = comment.Id, DateUtcPublished = comment.DateUtcAdd, Content = comment.Content, DislikeCount = 0, LikeCount = 0, ReviewId = reviewId, UserInfo = new UserInfoExtraSmall() { AppUserId = currUserId, ProfileImage = _userImageSettings.UserImageUrlTemplate.Replace("{#appUserId}", currUserId) }, LikeStatus = LikeStatus.None, AuthorId = currUserId }; ret.IsActionSucceed = true; return(ret); } ret.IsActionSucceed = false; return(ret); }
public void Return_Array() { // Assign var tagsInput = "Test, test2; test-again"; // Act var tags = TagHelpers.GetTagsFromString(tagsInput); // Assert Assert.Contains("Test", tags); Assert.Contains("test2", tags); Assert.Contains("test-again", tags); }
public void Attach_Old_Relationship_And_Create_New_Tags() { // Assign var tags = new[] { "Test", "Test2" }; var faq = new Faq { Id = 77 }; var news = new News { Id = 33 }; var faqTag = new FaqTag { FaqId = 77, Faq = faq, TagId = 65 }; var newsTag = new NewsTag { NewsId = 33, News = news, TagId = 65 }; var tag = new Tag { Id = 65, Name = "Test", NewsTags = new List <NewsTag> { newsTag }, FaqTags = new List <FaqTag> { faqTag }, }; faqTag.Tag = tag; newsTag.Tag = tag; // Act TagHelpers.SetTags <News, NewsTag>(tags, news, new List <Tag> { tag }); TagHelpers.SetTags <Faq, FaqTag>(tags, faq, new List <Tag> { tag }); // Assert Assert.Equal(33, news.NewsTags.Single(nt => nt.Tag.Name == "Test").NewsId); Assert.Equal(77, faq.FaqTags.Single(nt => nt.Tag.Name == "Test").FaqId); Assert.Equal(65, faq.FaqTags.Single(nt => nt.Tag.Name == "Test").TagId); Assert.Equal(65, news.NewsTags.Single(nt => nt.Tag.Name == "Test").TagId); Assert.Equal(0, faq.FaqTags.Single(nt => nt.Tag.Name == "Test2").Tag.Id); Assert.Equal(0, news.NewsTags.Single(nt => nt.Tag.Name == "Test2").Tag.Id); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Category,Question,Answer,Url")] FaqViewModel faqVM) { if (id != faqVM?.Id) { return(NotFound()); } if (ModelState.IsValid) { var entity = await _context.Faqs .Include(f => f.Category) .SingleOrDefaultAsync(c => c.Id == id); if (entity.IsNull()) { return(NotFound()); } if (!entity.Category.Title.Equals(faqVM.Category.Title, StringComparison.OrdinalIgnoreCase)) { var category = await _context.Categories.SingleOrDefaultAsync(c => c.Title.Equals(faqVM.Category.Title, StringComparison.OrdinalIgnoreCase)); if (category.IsNotNull()) { entity.Category = category; } else { entity.Category = new Category { Title = faqVM.Category.Title, Url = CustomUrlHelper.URLFriendly(faqVM.Category.Title), }; } } entity.Answer = faqVM.Answer; entity.Question = faqVM.Question; var tags = TagHelpers.GetTagsFromString(faqVM.Tags); var allTagEntities = GetAllTagEntitiesInternal(faqVM, tags); TagHelpers.SetTags <Faq, FaqTag>(tags, entity, allTagEntities); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { Id = entity.Id })); } return(View(faqVM)); }
public void ProcessTags() { var jobsWithNoTags = _repository.GetAll() .Where(j => !j.Tags.Any() && !string.IsNullOrEmpty(j.Html)).ToList(); var tags = _repository.GetAllTags().ToList(); foreach (var job in jobsWithNoTags) { var html = job.Html; var extractedTags = TagHelpers.ExtractTags(html, tags); _repository.UpdateTags(job.Id, extractedTags); } }
public void Create_New_Relationship() { // Assign var tags = new[] { "Test" }; var news = new News(); var faq = new Faq(); // Act TagHelpers.SetTags <News, NewsTag>(tags, news, null); TagHelpers.SetTags <Faq, FaqTag>(tags, faq, null); // Assert Assert.Contains("Test", news.NewsTags.Select(nt => nt.Tag.Name)); Assert.Contains("Test", faq.FaqTags.Select(nt => nt.Tag.Name)); }
protected override byte[] ToBytes(DataField value) => TagHelpers.ToBytesHelper(s => { s.EncodeUShort(Value.Version); s.EncodeILInt(Value.TagId); s.EncodeString(Value.Name); s.EncodeBool(false); s.EncodeBool(Value.IsOpaque.GetValueOrDefault()); s.EncodeILInt(Value.ElementTagId.GetValueOrDefault()); s.EncodeTagArray(Value.SubDataFields?.Select(df => new ILTagDataField(df))); s.EncodeByte((byte)value.Cast.GetValueOrDefault()); s.EncodeUShort(Value.SerializationVersion); s.EncodeString(Value.Description); EncodeEnumeration(s, value.EnumerationDefinition); s.EncodeBool(Value.EnumerationAsFlags.GetValueOrDefault()); s.EncodeBool(Value.IsDeprecated.GetValueOrDefault()); });
public async Task <IActionResult> Add(TagView result) { if (await _tagService.CheckIfTagExist(result.Name)) { ModelState.AddModelError("", "Tag o tej nazwie już istnieje"); } if (!ModelState.IsValid) { return(View(result)); } await _tagService.Create(TagHelpers.ConvertToModel(result)); return(RedirectToAction("List")); }
protected override DriverResult Editor(TagsPart part, IUpdateModel updater, dynamic shapeHelper) { var model = new EditTagsViewModel(); updater.TryUpdateModel(model, Prefix, null, null); var tagNames = TagHelpers.ParseCommaSeparatedTagNames(model.Tags); if (part.ContentItem.Id != 0) { _tagService.UpdateTagsForContentItem(part.ContentItem, tagNames); } return(ContentShape("Parts_Tags_Edit", () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix))); }
public override string RenderMjml() { return($@" {TagHelpers.ConditionalTag($@" <td {HtmlAttributes(new Dictionary<string, string> { { "style", "td" }, { "class", CssHelper.SuffixCssClasses(GetAttribute("css-class"), "outlook") } })}> ")} {RenderContent()} {TagHelpers.ConditionalTag($@" </td> ")} "); }
public BaseReturnModel SaveUserSettings(ProfileSettingsPostViewModel model, string currUserId) { BaseReturnModel ret = new BaseReturnModel(); UserInfo uInfo = _dbSet.FirstOrDefault(p => p.AppUserId == currUserId); uInfo.PrivacySetting = (UserPrivacySetting)model.SelectedPrivacySettings; uInfo.FollowSetting = (UserFollowSetting)model.SelectedFollowSettings; uInfo.Name = TagHelpers.RemoveUnwantedTags(model.Name); uInfo.Status = TagHelpers.RemoveUnwantedTags(model.Status); // uInfo.UName = model.UName; uInfo.Surname = TagHelpers.RemoveUnwantedTags(model.Surname); _dbSet.Update(uInfo); if (!(_entityContext.SaveChanges() == 0)) { ret.IsActionSucceed = true; } return(ret); }
async public void No_Relations() { // Assign var result = false; DbContextFake.SeedDb <IntranetApiContext>(c => c.Add(new Tag())); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { // Act result = await TagHelpers.HasNoRelatedEntities(context.Tags.SingleOrDefault(), context); } using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { // Assert Assert.True(result); } }
public async Task <IActionResult> Create([Bind("Category,Question,Answer,Tags")] FaqViewModel faqVM) { if (ModelState.IsValid) { var category = await _context .Categories .SingleOrDefaultAsync(c => c.Title.Equals(faqVM.Category.Title, StringComparison.OrdinalIgnoreCase)); if (category.IsNotNull()) { faqVM.Category = category; } else { faqVM.Category = new Category { Title = faqVM.Category.Title, Url = CustomUrlHelper.URLFriendly(faqVM.Category.Title), }; } var faq = new Faq { Answer = faqVM.Answer, Category = faqVM.Category, Question = faqVM.Question, Url = CustomUrlHelper.URLFriendly(faqVM.Question), }; var tags = TagHelpers.GetTagsFromString(faqVM.Tags); var allTagEntities = GetAllTagEntitiesInternal(faqVM, tags); TagHelpers.SetTags <Faq, FaqTag>(tags, faq, allTagEntities); await _context.AddAsync(faq); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { Id = faq.Id })); } ViewData["Categories"] = new SelectList(_context.Categories, nameof(Category.Id), nameof(Category.Title)); return(View(faqVM)); }
public async Task Update(string id, UpdatePostDto dto) { User user = await _sessionService.GetUser(); Validate("modify", dto.Content, dto.Title, user); Post post = await _postRepository.GetById(id); if (post == null) { _logger.LogWarning($"Post {id} does not exist"); throw HttpError.NotFound($"Post {id} does not exist"); } if (post.AuthorId != user.Id) { _logger.LogWarning($"Post {id} does not belong to user"); throw HttpError.Forbidden($"Post {id} does not belong to user"); } post.Title = dto.Title; post.Content = dto.Content; post.LastUpdateTime = DateTime.Now; post.Tags = TagHelpers.GetTagsFromText(dto.Content); bool success = await _postRepository.Update(post); if (!success) { _logger.LogWarning("Error during update post"); throw HttpError.InternalServerError(""); } await _tagRepository.Create(post.Tags.Select(x => new Tag { Name = x, PostsNumber = 1 }).ToArray()); _logger.LogInformation("Tags have been added"); }