public DataSource Parse()

in src/DeloitteDigital.Atlas/DataSourceParser.cs [8:43]


        public DataSource Parse(string rawDataSource)
        {
            var dataSourceItemId = default(ID);
            var database = Sitecore.Context.Database;

            if (ID.TryParse(rawDataSource, out dataSourceItemId))
            // case 1: data source value is an item ID
            {
                var dataSourceItem = database.GetItem(dataSourceItemId);

                if (dataSourceItem != null)
                {
                    return new DataSource
                    {
                        Item = dataSourceItem,
                        Items = new[] { dataSourceItem }
                    };
                }
            }
            else if (rawDataSource.ToLower().StartsWith("query:"))
            // case 2: data source value is a sitecore query that starts with "query:"
            {
                var results = database.SelectItems(rawDataSource.Substring("query:".Length));

                if (results.Length > 0)
                {
                    return new DataSource
                    {
                        Item = results.First(),
                        Items = results
                    };
                }
            }

            return DataSource.Empty;
        }