public async Task <ActionResult <GetOptionsResult> > GetOptions([FromBody] GetOptionsRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.ChannelsTranslate)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(this.Error("无法确定内容对应的站点")); } var transChannels = await _channelRepository.GetAsync(request.TransSiteId); var transSite = await _siteRepository.GetAsync(request.TransSiteId); var cascade = await _channelRepository.GetCascadeAsync(transSite, transChannels, async summary => { var count = await _contentRepository.GetCountAsync(site, summary); return(new { summary.IndexName, Count = count }); }); return(new GetOptionsResult { TransChannels = cascade }); }
public async Task <ActionResult <GetOptionsResult> > GetOptions([FromBody] GetOptionsRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.Contents) || !await _authManager.HasContentPermissionsAsync(request.SiteId, request.ChannelId, MenuUtils.ContentPermissions.Add, MenuUtils.ContentPermissions.Edit)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(NotFound()); } var channelIdList = await _authManager.GetContentPermissionsChannelIdsAsync(request.TransSiteId, MenuUtils.ContentPermissions.Add); var transChannels = await _channelRepository.GetAsync(request.TransSiteId); var transSite = await _siteRepository.GetAsync(request.TransSiteId); var cascade = await _channelRepository.GetCascadeAsync(transSite, transChannels, async summary => { var count = await _contentRepository.GetCountAsync(site, summary); return(new { Disabled = !channelIdList.Contains(summary.Id), summary.IndexName, Count = count }); }); return(new GetOptionsResult { TransChannels = cascade }); }