예제 #1
0
        public async Task <ActionResult <IEnumerable <ChannelResponse> > > Get([FromQuery] GetChannelsRequest request)
        {
            var page = await _channelManager.GetAsync(request.ToDomain(), Cancel);

            SetTotalCountHeader(page.TotalCount);
            return(Ok(page.Items.Select(x => new ChannelResponse(x))));
        }
        public async Task <ActionResult <GetChannelsResult> > GetChannels([FromBody] GetChannelsRequest request)
        {
            if (!await _authManager.HasAppPermissionsAsync(MenuUtils.AppPermissions.PluginsManagement))
            {
                return(Unauthorized());
            }

            var site = await _siteRepository.GetAsync(request.SiteId);

            var channel = await _channelRepository.GetAsync(request.SiteId);

            channel.Children = await _channelRepository.GetChildrenAsync(request.SiteId, request.SiteId);

            var        plugin     = _pluginManager.GetPlugin(request.PluginId);
            SiteConfig siteConfig = null;

            if (plugin.SiteConfigs != null)
            {
                siteConfig = plugin.SiteConfigs.FirstOrDefault(x => x.SiteId == request.SiteId);
            }

            if (siteConfig == null)
            {
                siteConfig = new SiteConfig
                {
                    SiteId      = request.SiteId,
                    AllChannels = false,
                    ChannelIds  = new List <int>()
                };
            }

            return(new GetChannelsResult
            {
                SiteName = site.SiteName,
                Channel = channel,
                SiteConfig = siteConfig
            });
        }
 public GetChannelsRequestHandler(Request request, ClientConnection clientConnection, ILoadChannelsService loadChannelsService)
 {
     this.request             = (GetChannelsRequest)request;
     this.clientConnection    = clientConnection;
     this.loadChannelsService = loadChannelsService;
 }