Exemplo n.º 1
0
        /// <summary>
        /// Gets the root map nodes from a Glyma repository.
        /// </summary>
        /// <param name="entityFields">A ITypeDescriptorCollection object that contains the fields to retrieve for each node.</param>
        /// <returns>A collection of DynamicType objects containing details of the nodes retrieved from a Glyma repository.</returns>
        /// <remarks>This is intended to be used as a Finder method in a BCS model.</remarks>
        public List <DynamicType> GetRooMaps(ITypeDescriptorCollection entityFields)
        {
            GlymaSearchLogger.WriteTrace(LogCategoryId.Connector, TraceSeverity.Verbose, "GetRootMaps");

            Uri  startUrl = new Uri(StartAddress);
            Guid domainId = Guid.Empty;

            if (startUrl.Segments.Length == 2)
            {
                domainId = new Guid(startUrl.Segments[1].TrimEnd('/'));
            }

            List <DynamicType> nodes = MapRepository.GetRootMaps(RepositoryName, domainId, entityFields);

            nodes.RemoveAll(node => !CrawlRules.Apply(node, MapRepository));

            return(nodes);
        }