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);
     }
 }