public static void Execute <TFilter>(EntitiesIterator iterator, Action <TFilter> action) { foreach (var item in iterator.Items.OfType <TFilter>()) { action(item); } }
public static EntitiesIterator Create <T>(T entity) { EntitiesIterator iterator = new EntitiesIterator(); iterator.Visit(entity); return(iterator); }
internal static void Traverse(this Order entity, EntitiesIterator visitor) { if (entity.Customer != null) { visitor.Visit(entity.Customer); } }
public static void Execute <TEntity, TFilter>(TEntity entity, Action <TFilter> action) { EntitiesIterator iterator = EntitiesIterator.Create(entity); foreach (var item in iterator.Items.OfType <TFilter>()) { action(item); } }
internal static void Traverse(this Customer entity, EntitiesIterator visitor) { if (entity.Orders != null) { foreach (var value in entity.Orders) { visitor.Visit(value); } } }
public static T StartTrackingAll <T>(this T entity) where T : IObjectWithChangeTracker { EntitiesIterator.Execute(entity, (IObjectWithChangeTracker e) => { e.StartTracking(); }); return(entity); }