private IEnumerable<string> _Iterate(GroupAddressInstance ga) { switch (Kind) { case FilterKinds.GroupAddress: return IterateGroupAddresses(ga); case FilterKinds.GroupAddressDescription: return IterateGroupAddressDescriptions(ga); default: throw new NotImplementedException("Filter Kind is not valid"); } }
private static IEnumerable<string> IterateGroupAddressDescriptions(GroupAddressInstance ga) { if (ga.Ref == null) yield break; yield return ga.Ref.Name; if (ga.Ref.ParentRange == null) yield break; yield return ga.Ref.ParentRange.Name; yield return ga.Ref.ParentRange.Description; if (ga.Ref.ParentRange.ParentRange == null) yield break; yield return ga.Ref.ParentRange.ParentRange.Name; yield return ga.Ref.ParentRange.ParentRange.Description; }
private static IEnumerable<string> IterateGroupAddresses(GroupAddressInstance ga) { if (ga.Ref == null) yield break; yield return ga.Ref.ToString(); }
public IEnumerable<string> Iterate(GroupAddressInstance obj) { return _Iterate(obj).Where(row => !string.IsNullOrEmpty(row)); }