/// <summary> /// 内容处理 /// </summary> /// <param name="body">待处理内容</param> /// <param name="associateId">待处理相关项Id</param> /// <param name="userId">相关项作者</param> /// <param name="ownerId">拥有者Id</param> /// <returns></returns> public string Process(string body, string ownerTenantTypeId, long associateId, long userId, long ownerId) { string tenantTypeId = TenantTypeIds.Instance().Microblog(); AtUserService atUserService = new AtUserService(tenantTypeId); body = atUserService.ResolveBodyForDetail(body, associateId, userId, AtUserTagGenerate); TagService tagService = new TagService(tenantTypeId); Func<KeyValuePair<string, long>, long, string> topicTagGenerate = delegate(KeyValuePair<string, long> _tagNameWithId, long _ownerId) { return string.Format("<a href=\"{1}\">#{0}#</a>", _tagNameWithId.Key, MicroblogUrlGetterFactory.Get(ownerTenantTypeId).TopicDetail(_tagNameWithId.Key.Trim(), _ownerId)); }; body = tagService.ResolveBodyForDetail(body, associateId, ownerId, topicTagGenerate); body = body.Replace("\n", "<br/>"); EmotionService emotionService = DIContainer.Resolve<EmotionService>(); body = emotionService.EmoticonTransforms(body); ParsedMediaService parsedMediaService = DIContainer.Resolve<ParsedMediaService>(); body = parsedMediaService.ResolveBodyForDetail(body, associateId, userId, UrlTagGenerate); return body; }
/// <summary> /// MicroblogEntity转换成<see cref="Lucene.Net.Documents.Document"/> /// </summary> /// <param name="microblog">微博实体</param> /// <returns>Lucene.Net.Documents.Document</returns> public static Document Convert(MicroblogEntity microblog) { Document doc = new Document(); //索引微博基本信息 doc.Add(new Field(MicroblogIndexDocument.MicroblogId, microblog.MicroblogId.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); if (microblog.OriginalMicroblog != null) { doc.Add(new Field(MicroblogIndexDocument.Body, HtmlUtility.StripHtml(microblog.Body, true, false).ToLower() + HtmlUtility.StripHtml(microblog.OriginalMicroblog.Body, true, false).ToLower(), Field.Store.NO, Field.Index.ANALYZED)); } else { doc.Add(new Field(MicroblogIndexDocument.Body, HtmlUtility.StripHtml(microblog.Body, true, false).ToLower(), Field.Store.NO, Field.Index.ANALYZED)); } doc.Add(new Field(MicroblogIndexDocument.DateCreated, DateTools.DateToString(microblog.DateCreated, DateTools.Resolution.MILLISECOND), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(MicroblogIndexDocument.HasMusic, microblog.HasMusic ? "1" : "0", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(MicroblogIndexDocument.HasPhoto, microblog.HasPhoto ? "1" : "0", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(MicroblogIndexDocument.HasVideo, microblog.HasVideo ? "1" : "0", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(MicroblogIndexDocument.IsOriginality, microblog.ForwardedMicroblogId == 0 ? "1" : "0", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(MicroblogIndexDocument.TenantTypeId, microblog.TenantTypeId, Field.Store.YES, Field.Index.NOT_ANALYZED)); TagService tagService = new TagService(TenantTypeIds.Instance().Microblog()); IEnumerable<ItemInTag> itemInTags = tagService.GetItemInTagsOfItem(microblog.MicroblogId); foreach (ItemInTag itemInTag in itemInTags) { doc.Add(new Field(MicroblogIndexDocument.Topic, itemInTag.TagName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); } return doc; }
/// <summary> /// 详细页面地址 /// </summary> /// <param name="itemId">推荐内容Id</param> /// <returns></returns> public string RecommendItemDetail(long itemId) { Tag topic = new TagService(TenantTypeIds.Instance().Microblog()).Get(itemId); if (topic == null) return string.Empty; return SiteUrls.Instance().MicroblogTopic(topic.TagName); }
/// <summary> /// BarThread转换成<see cref="Lucene.Net.Documents.Document"/> /// </summary> /// <param name="BarThread">发帖实体</param> /// <returns>Lucene.Net.Documents.Document</returns> public static Document Convert(BarThread barThread) { Document doc = new Document(); //索引发帖基本信息 doc.Add(new Field(BarIndexDocument.SectionId, barThread.SectionId.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(BarIndexDocument.ThreadId, barThread.ThreadId.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(BarIndexDocument.PostId, "0", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(BarIndexDocument.Subject, barThread.Subject.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(BarIndexDocument.Body, HtmlUtility.StripHtml(barThread.GetBody(), true, false).ToLower(), Field.Store.NO, Field.Index.ANALYZED)); doc.Add(new Field(BarIndexDocument.Author, barThread.Author, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(BarIndexDocument.IsPost, "0", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(BarIndexDocument.DateCreated, DateTools.DateToString(barThread.DateCreated, DateTools.Resolution.DAY), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(BarIndexDocument.TenantTypeId, barThread.TenantTypeId, Field.Store.YES, Field.Index.NOT_ANALYZED)); //索引发帖tag TagService tagService = new TagService(TenantTypeIds.Instance().BarThread()); IEnumerable<ItemInTag> itemInTags = tagService.GetItemInTagsOfItem(barThread.ThreadId); foreach (ItemInTag itemInTag in itemInTags) { doc.Add(new Field(BarIndexDocument.Tag, itemInTag.TagName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); } return doc; }
/// <summary> /// 专题标签云 /// </summary>_CommentList /// <param name="tenantTypeId">租户类型Id</param> /// <param name="topNumber">显示的标签数量</param> /// <param name="ownerId">拥有者ID</param> /// <param name="showInNewPage">新页显示</param> /// <returns></returns> public ActionResult _TagCloud(string tenantTypeId = "", int topNumber = 20, long ownerId = 0, bool showInNewPage = false) { TagService tagService = new TagService(tenantTypeId); Dictionary<TagInOwner, int> topicTags = tagService.GetOwnerTopTags(topNumber, ownerId); ViewData["ownerId"] = ownerId; ViewData["showInNewPage"] = showInNewPage; return View(topicTags); }
/// <summary> /// 输出标签选择器(用于不能直接根据内容项获取标签的情况,例如:设置相关标签) /// </summary> /// <param name="htmlHelper"></param> /// <param name="tagInputName">表单项名称</param> /// <param name="selectedTagNames">选中的标签组</param> /// <param name="tenantTypeId">标签租户类型Id</param> /// <param name="ownerId">标签拥有者Id(可优先从该拥有者的标签中获取,并提供下拉列表选择)</param> /// <param name="topNumber">默认下拉列表中最多显示多少条数据</param> /// <returns></returns> public static MvcHtmlString TagSelector(this HtmlHelper htmlHelper, string tagInputName, IEnumerable<string> selectedTagNames, string tenantTypeId = null, long? ownerId = null, int topNumber = 50) { TagService tagService = new TagService(tenantTypeId); IEnumerable<string> ownerTagNames = new List<string>(); if (ownerId.HasValue && ownerId.Value > 0) ownerTagNames = tagService.GetTopOwnerTags(ownerId.Value, topNumber, tenantTypeId).Select(n => n.Key.TagName); TagSettings tagSettings = DIContainer.Resolve <ISettingsManager<TagSettings>>().Get(); if (selectedTagNames == null) selectedTagNames = new List<string>(); return htmlHelper.EditorForModel("TagSelector", new { tagInputName = tagInputName, ownerId = ownerId, selectedTagNames = string.Join(",", selectedTagNames), ownerTagNames = ownerTagNames, tagSettings = tagSettings }); }
/// <summary> /// 输出标签选择器(用于可根据内容项直接获取到选中标签的情况) /// </summary> /// <remarks>仅限登录用户使用</remarks> /// <param name="htmlHelper"></param> /// <param name="itemId">内容项Id</param> /// <param name="ownerId">标签拥有者Id(可优先从该拥有者的标签中获取,并提供下拉列表选择)</param> /// <param name="tagInputName"></param> /// <param name="tenantTypeId"></param> /// <param name="topNumber">默认下拉列表中最多显示多少条数据</param> /// <returns></returns> public static MvcHtmlString TagSelector(this HtmlHelper htmlHelper, string tagInputName, string tenantTypeId, long? itemId, long? ownerId = null, int topNumber = 50) { IEnumerable<string> selectedTagNames = new List<string>(); TagService tagService = new TagService(tenantTypeId); if (itemId != null && itemId.Value > 0) { IEnumerable<ItemInTag> itemInTags = tagService.GetItemInTagsOfItem(itemId.Value); selectedTagNames = itemInTags.Select(n => n.TagName); } return htmlHelper.TagSelector(tagInputName, selectedTagNames, tenantTypeId, ownerId, topNumber); }
public void GetAllTagsPublished_Test() { var moqRepositoryPost = new Mock<IRepository<Post>>(); moqRepositoryPost.Setup(p => p.Data).Returns(base.BuildPosts().AsQueryable()); TagService service = new TagService(moqRepositoryPost.Object); var result = service.GetAllPublished(); Assert.IsTrue(result.Count() == 5, "The number of tags distinctis"); }
public ActionResult TagStats(string id, string start, string end) { start = "01/" + start.Substring(3, start.Length - 3); GetDaysInMonth(end, ref end); ViewData["TagID"] = id; DateTime thestartDateWeWant = Convert.ToDateTime(start); ViewData["startdate"] = start; ViewData["enddate"] = end; TagService tagService = new TagService(); EventStats viewModel = tagService.GetTagStats(id, thestartDateWeWant); return(View(viewModel)); }
public void EndGetStandardTags(IAsyncResult result) { try { StandardTags = new ObservableCollection <TagViewModel>(TagService.EndGetStandardTags(result).Select(x => new TagViewModel(x))); } catch (SecurityAccessDeniedException ex) { LogService.BeginLogError(ex.Message, null, null); } catch (CommunicationException ex) { LogService.BeginLogError(ex.Message, null, null); } }
public virtual Result Insert(BlogPost post) { Result result = db.insert(post); if (result.IsValid) { String msg = string.Format("发布博客 <a href=\"{0}\">{1}</a>,得到奖励", alink.ToAppData(post), post.Title); incomeService.AddIncome(post.Creator, UserAction.Blog_CreatePost.Id, msg); updateAppCount(post); TagService.SaveDataTag(post, post.Tags); addFeedInfo(post); } return(result); }
public async Task Get_a_tag_by_id() { await DbContext.Tags.AddAsync(new Tag { Name = "VS Code" }); await DbContext.Tags.AddAsync(new Tag { Name = "Linux" }); await DbContext.Tags.AddAsync(new Tag { Name = "Visual Studio" }); await DbContext.SaveChangesAsync(); var svc = new TagService(DbContext, Mapper); var result = await svc.GetTagDtoAsync(1); Assert.AreEqual("VS Code", result.Name); }
public async Task No_tags_through_search() { await DbContext.Tags.AddAsync(new Tag { Name = "VS Code" }); await DbContext.Tags.AddAsync(new Tag { Name = "Linux" }); await DbContext.Tags.AddAsync(new Tag { Name = "Visual Studio" }); await DbContext.SaveChangesAsync(); var svc = new TagService(DbContext, Mapper); var result = await svc.SearchTagsDtoAsync("Net"); Assert.AreEqual(0, result.Count); }
public TagServiceTests(DatabaseFixture fixture) { var configuration = new MapperConfiguration(cfg => cfg.AddMaps(new[] { "UselessCore", }) ); mapper = new Mapper(configuration); var mockMemoryCache = new Mock <IMemoryCache>(); this.fixture = fixture; service = new TagService(fixture.Context, mockMemoryCache.Object, mapper); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; int TagId = Int32.Parse(context.Request["tagid"]); TagService tagService = new TagService(); Tag tag = new Tag(); tag = tagService.GetModel(TagId); tag.tagname = context.Request["tagname"]; tag.taglink = context.Request["taglink"]; bool b = tagService.Update(tag); context.Response.Write(b); context.Response.End(); }
public void TagService_GetTagByTagName_RepositoryReturnsNull_ReturnsNull() { //Arrange Tag nullTag = null; Task <Tag> tag = Task.FromResult(nullTag); TagService tagService = new TagService(_mockTagsRepository.Object, _mockMovieTagService.Object); _mockTagsRepository.Setup(x => x.GetTagByTagName(It.IsAny <string>())).Returns(tag); //Act var result = tagService.GetTagByTagName(_tag.Name).ConfigureAwait(false).GetAwaiter().GetResult(); //Assert Assert.IsNull(result); }
public async Task <IActionResult> Create([FromBody] string name) { if (string.IsNullOrWhiteSpace(name)) { return(BadRequest()); } if (!TagService.ValidateTagName(name)) { return(Conflict()); } await _tagService.Create(name.Trim()); return(Ok()); }
public void TagService_DeleteTag_ReturnsTag() { //Arrange TagService tagService = new TagService(_mockTagsRepository.Object, _mockMovieTagService.Object); _mockTagsRepository.Setup(x => x.Delete(It.IsAny <int>())).Returns(_tag); //Act var result = tagService.DeleteTag(_tag.Id).ConfigureAwait(false).GetAwaiter().GetResult(); //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(TagsDomainModel)); Assert.AreEqual(result.Id, _tagDomainModel.Id); }
public MailingSettingsController( UsersService userService, MailingSettingsService mailingSettingService, CronService cronService, TagService tagsService, MailService mailService, ArticleService articleService) { _userService = userService; _mailingSettingService = mailingSettingService; _cronService = cronService; _tagsService = tagsService; _mailService = mailService; _articleService = articleService; }
//------------------------------------------ 插入与更新 -------------------------------------------------- public virtual Result Insert(BlogPost post, int[] attachmentIds) { Result result = db.insert(post); if (result.IsValid) { saveAttachments(post, attachmentIds); updateAppCount(post); TagService.SaveDataTag(post, post.Tags); addFeedInfo(post); } return(result); }
public ActionResult AuditTags(string tagIds, bool isApproved) { TagService tagService = new TagService(string.Empty); if (!string.IsNullOrEmpty(tagIds)) { IEnumerable<long> updateTagIds = tagIds.TrimEnd(',').Split(',').Select(t => Convert.ToInt64(t)); tagService.UpdateAuditStatus(updateTagIds, isApproved); return Json("success", JsonRequestBehavior.AllowGet); } else { return Json("fail", JsonRequestBehavior.AllowGet); } }
public void ReturnEmpyCollection_WhenProvidedIdsCountIsZero() { // Arrange var mockedUOW = new Mock <IUnitOfWorkEF>(); var tagRepo = new Mock <IProjectableRepositoryEf <Tag> >(); var tagService = new TagService(tagRepo.Object, () => mockedUOW.Object); IEnumerable <int> tagIds = new List <int>(); // Act var result = tagService.GetTagsByIds(tagIds); // Assert Assert.AreEqual(0, result.Count()); }
public HttpResponseMessage Post(int entityTypeId, int ownerId, Guid entityGuid, string name, string entityQualifier = null, string entityQualifierValue = null, Guid?categoryGuid = null, bool?includeInactive = null) { SetProxyCreation(true); var person = GetPerson(); var personAlias = GetPersonAlias(); var tagService = new TagService((Rock.Data.RockContext)Service.Context); var tag = tagService.Get(entityTypeId, entityQualifier, entityQualifierValue, ownerId, name, categoryGuid, includeInactive); if (tag == null || !tag.IsAuthorized("Tag", person)) { int?categoryId = null; if (categoryGuid.HasValue) { var category = CategoryCache.Get(categoryGuid.Value); categoryId = category != null ? category.Id : (int?)null; } tag = new Tag(); tag.EntityTypeId = entityTypeId; tag.CategoryId = categoryId; tag.EntityTypeQualifierColumn = entityQualifier; tag.EntityTypeQualifierValue = entityQualifierValue; tag.OwnerPersonAliasId = new PersonAliasService((Rock.Data.RockContext)Service.Context).GetPrimaryAliasId(ownerId); tag.Name = name; tagService.Add(tag); } tag.TaggedItems = tag.TaggedItems ?? new Collection <TaggedItem>(); var taggedItem = tag.TaggedItems.FirstOrDefault(i => i.EntityGuid.Equals(entityGuid)); if (taggedItem == null) { taggedItem = new TaggedItem(); taggedItem.Tag = tag; taggedItem.EntityTypeId = entityTypeId; taggedItem.EntityGuid = entityGuid; tag.TaggedItems.Add(taggedItem); } System.Web.HttpContext.Current.Items.Add("CurrentPerson", person); Service.Context.SaveChanges(); return(ControllerContext.Request.CreateResponse(HttpStatusCode.Created, tag.Id)); }
public void PublishDraft(int id) { BlogPost post = postService.GetById(id, ctx.owner.Id); if (post == null) { echoRedirect(lang("exDataNotFound")); return; } BlogCategory category = new BlogCategory(); category.Id = cvt.ToInt(ctx.Post("CategoryId")); post.Category = category; post.Abstract = ctx.Post("Abstract"); post.Content = ctx.PostHtml("Content"); post.Title = ctx.Post("Title"); if (strUtil.IsNullOrEmpty(post.Title) || strUtil.IsNullOrEmpty(post.Content)) { echoRedirect(lang("exTitleContent")); return; } post.AccessStatus = cvt.ToInt(ctx.Post("AccessStatus")); post.CommentCondition = cvt.ToInt(ctx.Post("IsCloseComment")); if (post.SaveStatus == SaveStatus.Draft) { post.Created = DateTime.Now; } post.Ip = ctx.Ip; String tagStr = strUtil.SubString(ctx.Post("TagList"), 200); post.Tags = TagService.ResetRawTagString(tagStr); Result result = postService.PublishDraft(post); if (result.IsValid) { echoRedirect(lang("opok"), new MyListController().My); } else { echoRedirect(result.ErrorsHtml); } }
public async Task GetOwnerAsync( [Summary("The name of the tag whose owner is being requested.")] string name) { var tag = await TagService.GetTagAsync(Context.Guild.Id, name); if (tag is null) { await ReplyAsync($"The tag '{name.Trim().ToLower()}' does not exist."); return; } var embedBuilder = new EmbedBuilder() .WithDescription($"Owns the '{tag.Name}' tag.") .WithColor(Color.DarkPurple) .WithFooter(EmbedFooterText); if (tag.OwnerUser != null) { var user = await UserService.GetUserAsync(tag.OwnerUser.Id); if (user != null) { embedBuilder.WithUserAsAuthor(user, user.Id.ToString()); } else { embedBuilder.WithAuthor($"{tag.OwnerUser.GetFullUsername()} ({tag.OwnerUser.Id})"); } } else if (tag.OwnerRole != null) { var role = Context.Guild.GetRole(tag.OwnerRole.Id); embedBuilder .WithAuthor($"The {role.Name} role", Context.Guild.IconUrl) .WithColor(role.Color); } else { embedBuilder .WithDescription($"Unable to find the owner of the '{tag.Name}' tag.") .WithColor(Color.Red); } await ReplyAsync(embed : embedBuilder.Build()); }
public void GetTagsNameCount_Test() { var moqRepositoryPost = new Mock<IRepository<Post>>(); moqRepositoryPost.Setup(p => p.Data).Returns(base.BuildPosts().AsQueryable()); TagService service = new TagService(moqRepositoryPost.Object); var result = service.GetTagsNameCount(); Assert.IsTrue(result["ASP.NET"] == 2); Assert.IsTrue(result["ASP.NET MVC"] == 2); Assert.IsTrue(result["ASP.NET MVC 3"] == 2); Assert.IsTrue(result["C#"] == 1); Assert.IsTrue(result["Unit Test"] == 3); }
public async Task GetTagById_WithInValidId_ShouldThrow() { //Arrange var db = this.SetDb(); await this.SeedTag(db); var repo = new Repository <Tag>(db); var service = new TagService(null, repo, this.Mapper); //Act //Assert await Assert.ThrowsAsync <NullReferenceException>(async() => await service.GetTagById(3)); }
/// <summary> /// Formats the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="selection">The selection.</param> /// <returns></returns> public override string FormatSelection( Type entityType, string selection ) { string result = "Person Tag"; string[] selectionValues = selection.Split( '|' ); if ( selectionValues.Length >= 2 ) { Guid selectedTagGuid = selectionValues[1].AsGuid(); var selectedTag = new TagService( new RockContext() ).Get( selectedTagGuid ); if ( selectedTag != null ) { result = string.Format( "Tagged as {0}", selectedTag.Name ); } } return result; }
public async void TagChanged() { var newTag = AllTags.FirstOrDefault(t => t.Name.Equals(NewTag?.Name)); if (newTag == null) { return; } TagService.AddTagToProduct(ProductId, newTag.Id); Product = await ProductService.GetProductById(ProductId); myIsAddingTag = false; NewTag = new ProductTagModel(); StateHasChanged(); }
private async void MyValueChangeHandler(string theUserInput) { var newTag = AllTags.FirstOrDefault(t => t.Name.Equals(theUserInput)); if (newTag == null) { return; } TagService.AddTagToProduct(ProductId, newTag.Id); Product = await ProductService.GetProductById(ProductId); myIsAddingTag = false; NewTag = new ProductTagModel(); StateHasChanged(); }
//todo:获取同步的标签 public JsonResult GetSyncTags(string token, int afterUsn, int maxEntry) { User user = TokenSerivce.GetUserByToken(token); if (user == null) { ApiRe apiRe = new ApiRe() { Ok = false, Msg = "Not logged in", }; return(Json(apiRe, MyJsonConvert.GetOptions())); } NoteTag[] noteTags = TagService.GeSyncTags(user.UserId, afterUsn, maxEntry); return(Json(noteTags, MyJsonConvert.GetOptions())); }
//todo:添加Tag public JsonResult AddTag(string token, string tag) { NoteTag noteTag = TagService.AddOrUpdateTag(getUserIdByToken(token), tag); if (noteTag == null) { return(Json(new ApiRe() { Ok = false, Msg = "添加标签失败" }, MyJsonConvert.GetOptions())); } else { return(Json(noteTag, MyJsonConvert.GetOptions())); } }
public ActionResult AuditTags(string tagIds, bool isApproved) { TagService tagService = new TagService(string.Empty); if (!string.IsNullOrEmpty(tagIds)) { IEnumerable <long> updateTagIds = tagIds.TrimEnd(',').Split(',').Select(t => Convert.ToInt64(t)); tagService.UpdateAuditStatus(updateTagIds, isApproved); return(Json("success", JsonRequestBehavior.AllowGet)); } else { return(Json("fail", JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 标签显示文章列表 /// </summary> public ActionResult ListByTag(string tagName, int pageIndex = 1) { tagName = WebUtility.UrlDecode(tagName); var tag = new TagService(TenantTypeIds.Instance().BlogThread()).Get(tagName); if (tag == null) { return(HttpNotFound()); } PagingDataSet <BlogThread> blogs = blogService.Gets(TenantTypeIds.Instance().User(), null, false, true, null, tagName, null, SortBy_BlogThread.DateCreated_Desc, 20, pageIndex); pageResourceManager.InsertTitlePart(tagName); ViewData["tag"] = tag; return(View(blogs)); }
public ActionResult _SetTagsGroup(string tenantTypeId) { ViewData["tenantTypeId"] = tenantTypeId; List <SelectListItem> groupItems = new List <SelectListItem>(); IEnumerable <TagGroup> groups = new TagService(tenantTypeId).GetGroups(tenantTypeId); foreach (var item in groups) { groupItems.Add(new SelectListItem { Text = item.GroupName, Value = item.GroupId.ToString() }); } ViewData["groupSelectList"] = new SelectList(groupItems, "value", "text", groupItems); return(View()); }
/// <summary> /// Handles the GridReorder event of the rGrid control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="GridReorderEventArgs"/> instance containing the event data.</param> protected void rGrid_GridReorder(object sender, GridReorderEventArgs e) { var tags = GetTags(true); if (tags != null) { using (var rockContext = new RockContext()) { var tagService = new TagService(rockContext); tagService.Reorder(tags.ToList(), e.OldIndex, e.NewIndex); rockContext.SaveChanges(); } } BindGrid(); }
public ActionResult DeleteTag(int tagid) { TagService ser = new TagService(WXAPP.AppId, WXAPP.AppSecret); JObject jo = JObject.Parse(ser.Delete(tagid)); var result = new { errcode = jo["errcode"].ToString(), errmsg = jo["errmsg"].ToString() }; if (result.errcode.Equals("0")) { new WX_UserTagManager().Delete(tagid, WXAPP.AppId); } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult StartPage() { ViewBag.tags = TagService.GetTagsList(); if (!fillDataLists) { fillDataLists = !fillDataLists; FillData(); } AccountController.wrongEmail = false; AccountController.isSave = false; AccountController.largeLenght = false; NewService.SetLike(); ViewBag.search = NewService.newStack; NewService.FillParameters(); return(View()); }
public async void Get_ShouldReturnNullBecauseRecordNotFound() { var mock = new ServiceMockFacade <ITagService, ITagRepository>(); mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <Tag>(null)); var service = new TagService(mock.LoggerMock.Object, mock.MediatorMock.Object, mock.RepositoryMock.Object, mock.ModelValidatorMockFactory.TagModelValidatorMock.Object, mock.DALMapperMockFactory.DALTagMapperMock); ApiTagServerResponseModel response = await service.Get(default(int)); response.Should().BeNull(); mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>())); }
public async void ByWikiPostId_Not_Exists() { var mock = new ServiceMockFacade <ITagService, ITagRepository>(); mock.RepositoryMock.Setup(x => x.ByWikiPostId(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <Tag> >(new List <Tag>())); var service = new TagService(mock.LoggerMock.Object, mock.MediatorMock.Object, mock.RepositoryMock.Object, mock.ModelValidatorMockFactory.TagModelValidatorMock.Object, mock.DALMapperMockFactory.DALTagMapperMock); List <ApiTagServerResponseModel> response = await service.ByWikiPostId(default(int)); response.Should().BeEmpty(); mock.RepositoryMock.Verify(x => x.ByWikiPostId(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())); }
public virtual void Init() { WorkspaceService = new WorkspaceService(Constants.ApiToken); var workspaces = WorkspaceService.List(); ClientService = new ClientService(Constants.ApiToken); TaskService = new TaskService(Constants.ApiToken); TagService = new TagService(Constants.ApiToken); ProjectService = new ProjectService(Constants.ApiToken); UserService = new UserService(Constants.ApiToken); TimeEntryService = new TimeEntryService(Constants.ApiToken); ReportService = new ReportService(Constants.ApiToken); foreach (var workspace in workspaces) { var projects = WorkspaceService.Projects(workspace.Id.Value); var tasks = WorkspaceService.Tasks(workspace.Id.Value); var tags = WorkspaceService.Tags(workspace.Id.Value); // TODO var users = WorkspaceService.Users(workspace.Id.Value); // TODO var clients = WorkspaceService.Clients(workspace.Id.Value); var rte = new TimeEntryParams { StartDate = DateTime.Now.AddYears(-1)}; var timeEntries = TimeEntryService.List(rte); Assert.IsTrue(TimeEntryService.DeleteIfAny(timeEntries.Select(te => te.Id.Value).ToArray())); Assert.IsTrue(ProjectService.DeleteIfAny(projects.Select(p => p.Id.Value).ToArray())); Assert.IsTrue(TaskService.DeleteIfAny(tasks.Select(t => t.Id.Value).ToArray())); Assert.IsTrue(ClientService.DeleteIfAny(clients.Select(c => c.Id.Value).ToArray())); Assert.IsFalse(WorkspaceService.Projects(workspace.Id.Value).Any()); Assert.IsFalse(WorkspaceService.Tasks(workspace.Id.Value).Any()); Assert.IsFalse(WorkspaceService.Clients(workspace.Id.Value).Any()); Assert.IsFalse(TimeEntryService.List(rte).Any()); } DefaultWorkspaceId = workspaces.First().Id.Value; }
public ActionResult _ListUsersTags(string spaceKey) { //取所有用户标签 TagService tagService = new TagService(TenantTypeIds.Instance().User()); IDictionary<TagGroup, List<string>> tagsInGroupDict = new Dictionary<TagGroup, List<string>>(); IEnumerable<TagGroup> tagGroups = tagService.GetGroups(); if (tagGroups != null) { foreach (TagGroup tagGroup in tagGroups) { tagsInGroupDict[tagGroup] = tagService.GetTopTagsOfGroup(tagGroup.GroupId, 20).ToList(); } } int count = userProfileSettings.MaxPersonTag; if (tagGroups != null) ViewData["tagGroupsCount"] = tagGroups.ToList().Count; ViewData["count"] = count; return View(tagsInGroupDict); }
/// <summary> /// User转换成<see cref="Lucene.Net.Documents.Document"/> /// </summary> /// <param name="user">用户实体</param> /// <returns>Lucene.Net.Documents.Document</returns> public static Document Convert(User user) { Document doc = new Document(); if (user == null) return doc; //索引用户基本信息 doc.Add(new Field(UserIndexDocument.UserId, user.UserId.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(UserIndexDocument.UserName, user.UserName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.TrueName, user.TrueName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.NickName, user.NickName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.DateCreated, DateTools.DateToString(user.DateCreated, DateTools.Resolution.DAY), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(UserIndexDocument.LastActivityTime, DateTools.DateToString(user.LastActivityTime, DateTools.Resolution.MINUTE), Field.Store.YES, Field.Index.NOT_ANALYZED)); //索引用户名称的拼音信息方便支持拼音搜索 doc.Add(new Field(UserIndexDocument.PinyinName, Pinyin.GetPinyin(user.UserName.ToLower()), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.PinyinName, Pinyin.GetPinyin(user.UserName.ToLower()).Replace(" ", ""), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.ShortPinyinName, Pinyin.GetInitials(user.UserName.ToLower()), Field.Store.YES, Field.Index.ANALYZED)); if (!string.IsNullOrEmpty(user.NickName)) { doc.Add(new Field(UserIndexDocument.PinyinName, Pinyin.GetPinyin(user.NickName.ToLower()), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.PinyinName, Pinyin.GetPinyin(user.NickName.ToLower()).Replace(" ", ""), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.ShortPinyinName, Pinyin.GetInitials(user.NickName.ToLower()), Field.Store.YES, Field.Index.ANALYZED)); } if (!string.IsNullOrEmpty(user.TrueName)) { doc.Add(new Field(UserIndexDocument.PinyinName, Pinyin.GetPinyin(user.TrueName.ToLower()), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.PinyinName, Pinyin.GetPinyin(user.TrueName.ToLower()).Replace(" ", ""), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(UserIndexDocument.ShortPinyinName, Pinyin.GetInitials(user.TrueName.ToLower()), Field.Store.YES, Field.Index.ANALYZED)); } //索引用户资料 if (user.Profile != null) { doc.Add(new Field(UserIndexDocument.Gender, ((int)user.Profile.Gender).ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); if (user.Profile.Birthday != null) { doc.Add(new Field(UserIndexDocument.Birthday, DateTools.DateToString(user.Profile.Birthday, DateTools.Resolution.DAY), Field.Store.YES, Field.Index.NOT_ANALYZED)); //注意此处不能用NumericField,因为Lucene有NumericField不能序列化的bug,会导致采用WCF分布式部署时调用失败,所以只能以字符串的方式索引 string birthdayYear = user.Profile.Birthday.Year.ToString().PadLeft(3, '0'); doc.Add(new Field(UserIndexDocument.BirthdayYear, birthdayYear, Field.Store.YES, Field.Index.NOT_ANALYZED)); } if (user.Profile.NowAreaCode != null) { doc.Add(new Field(UserIndexDocument.NowAreaCode, user.Profile.NowAreaCode, Field.Store.YES, Field.Index.NOT_ANALYZED)); } if (user.Profile.HomeAreaCode != null) { doc.Add(new Field(UserIndexDocument.HomeAreaCode, user.Profile.HomeAreaCode, Field.Store.YES, Field.Index.NOT_ANALYZED)); } int hasAvatarImage = 0; if (user.HasAvatar) { hasAvatarImage = 1; } doc.Add(new Field(UserIndexDocument.HasAvatarImage, hasAvatarImage.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); if (user.Profile.Introduction != null) { doc.Add(new Field(UserIndexDocument.Introduction, user.Profile.Introduction.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); } foreach (EducationExperience educationExperience in user.Profile.EducationExperience) { doc.Add(new Field(UserIndexDocument.School, educationExperience.School.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); } foreach (WorkExperience workExperience in user.Profile.WorkExperience) { doc.Add(new Field(UserIndexDocument.CompanyName, workExperience.CompanyName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); } } //索引tag TagService tagService = new TagService(TenantTypeIds.Instance().User()); //fixed by jiangshl,已按要求修改 IEnumerable<ItemInTag> itemInTags = tagService.GetItemInTagsOfItem(user.UserId); foreach (ItemInTag itemInTag in itemInTags) { doc.Add(new Field(UserIndexDocument.TagName, itemInTag.TagName.ToLower(), Field.Store.YES, Field.Index.ANALYZED)); } return doc; }
/// <summary> /// 删除用户资料 /// </summary> /// <param name="userProfile">用户资料</param> /// <returns>删除成功返回true,否则返回false</returns> public bool Delete(long userId) { UserProfile userProfile = profileRepository.Get(userId); if (userProfile == null) return false; EventBus<UserProfile>.Instance().OnBefore(userProfile, new CommonEventArgs(EventOperationType.Instance().Delete())); profileRepository.Delete(userProfile); IEnumerable<EducationExperience> educationExperiences = GetEducationExperiences(userId); if (educationExperiences != null) { foreach (var educationExperience in educationExperiences) { educationExperienceRepository.Delete(educationExperience); } } IEnumerable<WorkExperience> workExperiences = GetWorkExperiences(userId); if (workExperiences != null) { foreach (var workExperience in workExperiences) { workExperienceRepository.Delete(workExperience); } } //通过UserId 删除个人标签 TagService tagService = new TagService(TenantTypeIds.Instance().UserProfile()); tagService.DeleteOwnerTag(userId); EventBus<UserProfile>.Instance().OnAfter(userProfile, new CommonEventArgs(EventOperationType.Instance().Delete())); //同时删除教育经历、工作经历、个人标签、头像文件等 return true; }
/// <summary> /// 标签显示群组列表 /// </summary> public ActionResult ListByTag(string tagName, SortBy_Group sortBy = SortBy_Group.DateCreated_Desc, int pageIndex = 1) { tagName = WebUtility.UrlDecode(tagName); var tag = new TagService(TenantTypeIds.Instance().Group()).Get(tagName); if (tag == null) { return HttpNotFound(); } PagingDataSet<GroupEntity> groups = groupService.GetsByTag(tagName, sortBy, pageIndex: pageIndex); pageResourceManager.InsertTitlePart(tagName); ViewData["tag"] = tag; ViewData["sortBy"] = sortBy; return View(groups); }
public ActionResult EditTopic(TagEditModel tagEditModel) { System.IO.Stream stream = null; //是否创建 bool isCreate = tagEditModel.TagId == 0; if (isCreate) { ViewData["editTopicTitle"] = "创建话题"; } else { ViewData["editTopicTitle"] = "编辑话题"; } TagService tagService = new TagService(tagEditModel.TenantTypeId); IEnumerable<long> userIds = Request.Form.Gets<long>("RelatedObjectIds"); //是特色标签 if (tagEditModel.IsFeatured) { HttpPostedFileBase tagLogo = Request.Files["tagLogo"]; string fileName = tagLogo == null ? "" : tagLogo.FileName; if (string.IsNullOrEmpty(fileName) && string.IsNullOrEmpty(tagEditModel.FeaturedImage)) { //标签分组下拉框 SelectList topicGroups = GetTagGroupSelectList(tagEditModel.TopicGroupId, tagEditModel.TenantTypeId); ViewData["topicGroups"] = topicGroups; //取到用户设置的相关标签 ViewData["seletedUserIds"] = userIds; ViewData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Error, "图片不能为空"); return View(tagEditModel); } else if (!string.IsNullOrEmpty(fileName)) { //校验附件的扩展名 LogoSettings logoSettings = DIContainer.Resolve<ISettingsManager<LogoSettings>>().Get(); if (!logoSettings.ValidateFileExtensions(fileName)) { //标签分组下拉框 SelectList topicGroups = GetTagGroupSelectList(tagEditModel.TopicGroupId, tagEditModel.TenantTypeId); ViewData["topicGroups"] = topicGroups; //取到用户设置的相关标签 ViewData["seletedUserIds"] = userIds; ViewData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Error, "只允许上传后缀名为 .gif .jpg .jpeg .png 的文件"); return View(tagEditModel); } //校验附件的大小 TenantLogoSettings tenantLogoSettings = TenantLogoSettings.GetRegisteredSettings(TenantTypeIds.Instance().Tag()); if (!tenantLogoSettings.ValidateFileLength(tagLogo.ContentLength)) { //标签分组下拉框 SelectList topicGroups = GetTagGroupSelectList(tagEditModel.TopicGroupId, tagEditModel.TenantTypeId); ViewData["topicGroups"] = topicGroups; //取到用户设置的相关标签 ViewData["seletedUserIds"] = userIds; ViewData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Error, string.Format("文件大小不允许超过{0}KB", tenantLogoSettings.MaxLogoLength)); return View(tagEditModel); } stream = tagLogo.InputStream; tagEditModel.FeaturedImage = fileName; } } //获取相关微博 IEnumerable<long> seletedUserIds = userIds; //创建 if (isCreate) { Tag tag = tagEditModel.AsTag(); tagService.Create(tag, stream); //添加到分组 if (tagEditModel.TopicGroupId > 0) { tagService.BatchAddGroupsToTag(new List<long>() { tagEditModel.TopicGroupId }, tagEditModel.TagName); } }//更新 else { Tag tag = tagEditModel.AsTag(); tagService.Update(tag, stream); //添加到分组 if (tagEditModel.TopicGroupId > 0) { tagService.BatchAddGroupsToTag(new List<long>() { tagEditModel.TopicGroupId }, tagEditModel.TagName); } } return RedirectToAction("ManageMicroblogTopics"); }
private List<Domain.Tag> GetTags(IApiProvider apiProvider) { List<Domain.Tag> result = new List<Domain.Tag>(); ITagService tagService = new TagService(apiProvider); bool done = false; int page = 1; while (!done) { List<Domain.Tag> tags = tagService.GetList(new TagListParameters { OrderBy = TagListSort.Tag, Order = GenericSort.Ascending, Size = 100, PageOffset = page++, ExcludeMachineTags = false, ReformatTags = false }); if (tags.Count > 0) result.AddRange(tags); if (tags.Count < 100) done = true; } return result; }
public JsonResult CreateUserTag(string spaceKey) { bool isBanned = false; string tagName = Request.Form["TagName"]; tagName = TextFilter(tagName, out isBanned); if (isBanned) { WebUtility.SetStatusCodeForError(Response); return Json(new StatusMessageData(StatusMessageType.Error, "内容中包含非法词语!")); } long userId = UserIdToUserNameDictionary.GetUserId(spaceKey); TagService tagService = new TagService(TenantTypeIds.Instance().User()); int count = userProfileSettings.MaxPersonTag; if (tagService.GetItemInTagsOfItem(userId).Count() >= count) { WebUtility.SetStatusCodeForError(Response); return Json(new StatusMessageData(StatusMessageType.Error, "最多只能添加" + count + "个标签!")); } if (tagName != null) { tagService.AddTagToItem(tagName, userId, userId); return Json(new StatusMessageData(StatusMessageType.Success, "创建成功")); } WebUtility.SetStatusCodeForError(Response); return Json(new StatusMessageData(StatusMessageType.Error, "标签不能为空!")); }
public JsonResult DeleteMyUserTag(string spaceKey, long itemInTagId) { TagService tagService = new TagService(TenantTypeIds.Instance().User()); tagService.DeleteTagFromItem(itemInTagId); if (itemInTagId > 0) return Json(new StatusMessageData(StatusMessageType.Success, "删除成功!")); else return Json(new StatusMessageData(StatusMessageType.Error, "删除失败!")); }
/// <summary> /// 删除帖吧 /// </summary> /// <param name="sectionId">帖吧Id</param> public void Delete(long sectionId) { BarSection section = barSectionRepository.Get(sectionId); if (section == null) return; EventBus<BarSection>.Instance().OnBefore(section, new CommonEventArgs(EventOperationType.Instance().Delete())); //帖子 BarThreadService barThreadService = new BarThreadService(); barThreadService.DeletesBySectionId(sectionId); CategoryService categoryService = new CategoryService(); //帖吧分类 categoryService.ClearCategoriesFromItem(sectionId, null, TenantTypeIds.Instance().BarSection()); //帖子分类 var categories = categoryService.GetRootCategories(TenantTypeIds.Instance().BarThread(), sectionId); foreach (var category in categories) { categoryService.Delete(category.CategoryId); } //帖吧标签 TagService tagService = new TagService(TenantTypeIds.Instance().BarThread()); tagService.ClearTagsFromOwner(sectionId); //删除Logo DeleteLogo(sectionId); //删除推荐记录 RecommendService recommendService = new RecommendService(); recommendService.Delete(sectionId, TenantTypeIds.Instance().BarSection()); int affectCount = barSectionRepository.Delete(section); if (affectCount > 0) { EventBus<BarSection>.Instance().OnAfter(section, new CommonEventArgs(EventOperationType.Instance().Delete())); EventBus<BarSection, AuditEventArgs>.Instance().OnAfter(section, new AuditEventArgs(null, section.AuditStatus)); } }
/// <summary> /// 管理我的标签,根据租户类型id查找 /// </summary> /// <param name="spaceKey">用户spaceKey</param> /// <param name="tenantTypeId">租户类型id</param> /// <returns></returns> public ActionResult ManageMyTags(string spaceKey, string tenantTypeId) { //取所有用户标签 TagService tagService = new TagService(tenantTypeId); IEnumerable<TagInOwner> tags = tagService.GetOwnerTags(UserContext.CurrentUser.UserId); pageResourceManager.InsertTitlePart("标签管理"); return View(tags); }
/// <summary> /// 标签显示帖子列表 /// </summary> /// <returns></returns> public ActionResult ListsByTag(string tagName, SortBy_BarThread? sortBy, bool? isEssential, int pageIndex = 1) { tagName = WebUtility.UrlDecode(tagName); PagingDataSet<BarThread> pds = barThreadService.Gets(TenantTypeIds.Instance().Bar(), tagName, isEssential, sortBy ?? SortBy_BarThread.StageHitTimes, pageIndex); if (Request.IsAjaxRequest()) return PartialView("_List", pds); var tag = new TagService(TenantTypeIds.Instance().BarThread()).Get(tagName); if (tag == null) { return HttpNotFound(); } ViewData["tag"] = tag; pageResourceManager.InsertTitlePart(tagName); ViewData["sortBy"] = sortBy; return View(pds); }
/// <summary> /// 标签显示日志列表 /// </summary> public ActionResult ListByTag(string tagName, int pageIndex = 1) { tagName = WebUtility.UrlDecode(tagName); var tag = new TagService(TenantTypeIds.Instance().BlogThread()).Get(tagName); if (tag == null) { return HttpNotFound(); } PagingDataSet<BlogThread> blogs = blogService.Gets(TenantTypeIds.Instance().User(), null, false, true, null, tagName, null, SortBy_BlogThread.DateCreated_Desc, 20, pageIndex); pageResourceManager.InsertTitlePart(tagName); ViewData["tag"] = tag; return View(blogs); }
/// <summary> /// 创建关联个人标签 /// </summary> /// <param name="spaceKey">用户spaceKey</param> public ActionResult AddTagToItem(string spaceKey, string tagName) { long userId = UserIdToUserNameDictionary.GetUserId(spaceKey); if (tagName != null) { TagService tagService = new TagService(TenantTypeIds.Instance().User()); tagService.AddTagToItem(tagName, userId, userId); } return RedirectToAction("_ListMyUserTags", new { spaceKey = spaceKey, l = DateTime.UtcNow.Millisecond }); }
public ActionResult _InterestGroup() { TagService tagService = new TagService(TenantTypeIds.Instance().User()); IUser currentUser = UserContext.CurrentUser; if (currentUser != null) { GroupFullTextQuery query = new GroupFullTextQuery(); query.PageSize = 20; query.PageIndex = 1; query.Range = GroupSearchRange.TAG; query.Tags = tagService.GetTopTagsOfItem(currentUser.UserId, 100).Select(n => n.TagName); query.GroupIds = groupService.GetMyJoinedGroups(currentUser.UserId, 100, 1).Select(n => n.GroupId.ToString()); //调用搜索器进行搜索 GroupSearcher GroupSearcher = (GroupSearcher)SearcherFactory.GetSearcher(GroupSearcher.CODE); IEnumerable<GroupEntity> groupsTag = null; if (GroupSearcher.Search(query, true).Count == 0) { return View(); } else { groupsTag = GroupSearcher.Search(query, true).AsEnumerable<GroupEntity>(); } if (groupsTag.Count() < 20) { IEnumerable<GroupEntity> groupsFollow = groupService.FollowedUserAlsoJoinedGroups(currentUser.UserId, 20 - groupsTag.Count()); return View(groupsTag.Union(groupsFollow)); } else { return View(groupsTag); } } else { return View(); } }
public TagController(TagService tagService, PostService postService) { this.tagService = tagService; this.postService = postService; }
public ActionResult _TagCloud(string tenantTypeId = "", int num = 20, bool isBlank = false) { TagService tagService = new TagService(tenantTypeId); Dictionary<Tag, int> tags = tagService.GetTopTags(num, SortBy_Tag.ItemCountDesc); ViewData["tenantTypeId"] = tenantTypeId; ViewData["isBlank"] = isBlank; return View(tags); }
public ActionResult _Create_AddTopic() { TagService tagService = new TagService(TenantTypeIds.Instance().Microblog()); return View(tagService.GetTopTags(6, null, SortBy_Tag.ItemCountDesc)); }
public ActionResult _FollowTopics(string spaceKey, int? topNumber) { FavoriteService favoriteService = new FavoriteService(TenantTypeIds.Instance().Tag()); long userId = UserIdToUserNameDictionary.GetUserId(spaceKey); IEnumerable<Tag> tags = new TagService(TenantTypeIds.Instance().Microblog()).GetTags(favoriteService.GetTopObjectIds(userId, topNumber ?? 15)); return View(tags); }
public JsonResult ValidateTagName(string tagName, long tagId = 0) { bool result = false; if (tagId > 0) { result = true; } else { TagService tagService = new TagService(TenantTypeIds.Instance().Tag()); Tag tag = tagService.Get(tagName); if (tag != null) { return Json("该内容已存在", JsonRequestBehavior.AllowGet); } else { result = true; } } return Json(result, JsonRequestBehavior.AllowGet); }