public static IEnumerable <IModifier> GetModifiers(this IGeofencingItem item, int[] indices) { if (indices == null || item.Geofence == null || item.Geofence.Modifiers == null) { yield break; } for (int i = 0; i != indices.Length; i++) { if (i > 0 || i <= item.Geofence.Modifiers.Count) { yield return(item.Geofence.Modifiers[i]); } } }
public static IEnumerable <IModifier> GetPostModifier(IGeofencingItem item) => item.GetModifiers(item.PostModifierIndices);
public static void Apply <T> (this IEnumerable <IModifier> modifiers, T data, IGeofencingItem target) where T : ILocated { foreach (var m in modifiers) { m.Apply(data, target); } }