Ejemplo n.º 1
0
        protected IEnumerable <T> GetElementsCore <T>(IEnumerable <GraphNode> query, ISchemaElement metadata, int skip) where T : IModelElement
        {
            ISchemaElement currentMetadata = null;
            var            cx = 0;

            foreach (var e in query)
            {
                if (e == null)
                {
                    continue;
                }

                if (currentMetadata == null || currentMetadata.Id != e.SchemaId)
                {
                    currentMetadata = _domainModel.Store.GetSchemaElement(e.SchemaId);
                }

                if (metadata == null || currentMetadata.IsA(metadata))
                {
                    if (cx++ >= skip)
                    {
                        var ctx = new SerializationContext(_domainModel, currentMetadata, e);
                        yield return((T)currentMetadata.Deserialize(ctx));
                    }
                }
            }
        }