public virtual async Task CreateAsync(Material material, string tags, bool isDescriptionEditable = false) { material.Text = sanitizer.Sanitize(material.Text); var(preview, description) = MaterialExtensions.MakePreviewAndDescription(material.Text, materialsOptions.DescriptionLength, materialsOptions.PreviewLength); material.Preview = preview; if (isDescriptionEditable) { material.Description = SimpleHtmlToText.ClearTags(sanitizer.Sanitize(material.Description)); } else { material.Description = description; } /*material.MakePreviewAndDescription(materialsOptions.DescriptionLength, * materialsOptions.PreviewLength);*/ material.Id = await db.InsertWithInt32IdentityAsync(material); await tagsManager.MaterialCreateAndSetTagsAsync(material, tags); }
public virtual async Task UpdateAsync(Material material, string tags, bool isDescriptionEditable = false) { material.Text = sanitizer.Sanitize(material .Text); // TODO сделать совместную валидацию, санитайзин и превью на основе одного DOM var(preview, description) = MaterialExtensions.MakePreviewAndDescription(material.Text, materialsOptions.DescriptionLength, materialsOptions.PreviewLength); material.Preview = preview; if (isDescriptionEditable) { material.Description = SimpleHtmlToText.ClearTags(sanitizer.Sanitize(material.Description)); } else { material.Description = description; } /*material.MakePreviewAndDescription(materialsOptions.DescriptionLength, * materialsOptions.PreviewLength);*/ await db.UpdateAsync(material); await tagsManager.MaterialCreateAndSetTagsAsync(material, tags); }
public virtual async Task CreateAsync( Material material, string tags, bool isDescriptionEditable = false) { material.Text = sanitizer.Sanitize(material.Text); var(preview, description) = MaterialExtensions.MakePreviewAndDescription(material.Text, materialsOptions.DescriptionLength, materialsOptions.PreviewLength); material.Preview = preview; if (isDescriptionEditable) { material.Description = SimpleHtmlToText.ClearTags(sanitizer.Sanitize(material.Description)); } else { material.Description = description; } using (db.BeginTransaction()) { material.Id = await db.InsertWithInt32IdentityAsync(material); await db.Materials.Where(x => x.Id == material.Id).Set(x => x.SortNumber, x => material.Id) .UpdateAsync(); await tagsManager.MaterialCreateAndSetTagsAsync(material, tags); db.CommitTransaction(); } }
public Material SeedMaterial(Category category, string title, int commentsCount, string firstLine, string lineElement, LinesCount linesCount) { var publishDate = dataContainer.IterateCommentPublishDate(); int linesCountCurrent = ran.Next(linesCount.Min, linesCount.Max); int id = dataContainer.NextMaterialId(); Material material = new Material { Id = id, Title = title, Text = MakeSeedText(lineElement, 8, linesCountCurrent, firstLine), AuthorId = dataContainer.GetRandomUserId(), CategoryId = category.Id, PublishDate = publishDate, LastActivity = publishDate, SortNumber = id }; var(preview, description) = MaterialExtensions.MakePreviewAndDescription(material.Text, MaterialDescriptionLength, MaterialPreviewLength); material.Preview = preview; SectionType sectionType = category.GetSectionType(); if (sectionType != null && sectionType.Name == SectionTypeNames.Articles) { material.Description = "Описание материала: " + material.Title; } else { material.Description = description; } if (commentsCount > 0) { IList <Comment> comments = MakeComments(material, commentsCount); //Comment last = comments.OrderByDescending(x=>x.PublishDate).First(); //material.SetLastComment(last); material.LastActivity = comments.OrderByDescending(x => x.PublishDate).First().PublishDate; material.CommentsCount = comments.Count; dataContainer.Comments.AddRange(comments); } dataContainer.Materials.Add(material); return(material); }