AutobiographicMemory.AM.EventAgePropertyCalculator C# (CSharp) Méthode

EventAgePropertyCalculator() private méthode

private EventAgePropertyCalculator ( IQueryContext context, Name id ) : IEnumerable
context IQueryContext
id Name
Résultat IEnumerable
        private IEnumerable<DynamicPropertyResult> EventAgePropertyCalculator(IQueryContext context, Name id)
        {
            if(!context.Perspective.Match(Name.SELF_SYMBOL))
                yield break;

            if (id.IsVariable)
            {
                foreach (var record in m_registry.Values)
                {
                    var idSub = new Substitution(id, Name.BuildName(record.Id));
                    foreach (var c in context.Constraints)
                    {
                        if (c.Conflicts(idSub))
                            continue;

                        var newSet = new SubstitutionSet(c);
                        newSet.AddSubstitution(idSub);

                        var value = Tick - record.Timestamp;
                        yield return new DynamicPropertyResult(Name.BuildName(value), newSet);
                    }
                }
                yield break;
            }

            foreach (var pair in context.AskPossibleProperties(id))
            {
                uint idValue;
                if(!pair.Item1.TryConvertToValue(out idValue))
                    continue;

                var record = m_registry[idValue];
                var value = (Tick - record.Timestamp);
                foreach (var c in pair.Item2)
                    yield return new DynamicPropertyResult(Name.BuildName(value), c);
            }
        }