public void Process()

in src/DeloitteDigital.Atlas/Multisite/Datasource/GetDatasourceLocationFromProviders.cs [19:36]


        public void Process(GetRenderingDatasourceArgs args)
        {
            Assert.ArgumentNotNull(args, nameof(args));
            Assert.IsNotNull(_providers, typeof(IDatasourceProvider));

            var source = args.RenderingItem[DatasourceLocationFieldName];

            foreach (var datasourceProvider in _providers)
            {
                if (!datasourceProvider.CanAct(source))
                    continue; // current provider cannot act on this data source

                var contextItem = args.ContentDatabase.GetItem(args.ContextItemPath);
                                
                var datasources = datasourceProvider.GetDatasources(source, contextItem);
                args.DatasourceRoots.AddRange(datasources);
            }
        }