Пример #1
0
        protected void AssertCollectionInfo <T>(IBoardPostCollectionInfoSet infoSet, Action <T> asserts)
            where T : class, IBoardPostCollectionInfo
        {
            Assert.IsNotNull(infoSet, $"{typeof(T).Name}: infoSet != null");
            Assert.IsNotNull(infoSet.Items, $"{typeof(T).Name}: infoSet.Items != null");
            var info = infoSet.Items.FirstOrDefault(i => i.GetInfoInterfaceTypes().Any(it => it == typeof(T))) as T;

            Assert.IsNotNull(info, $"info is {typeof(T).Name}");
            asserts?.Invoke(info);
        }
Пример #2
0
 /// <summary>
 /// Получить информацию.
 /// </summary>
 /// <typeparam name="T">Тип информационного интерфейса.</typeparam>
 /// <param name="infoSet">Набор информации.</param>
 /// <returns>Инофрмация.</returns>
 public static T GetCollectionInfo <T>(this IBoardPostCollectionInfoSet infoSet)
     where T : class, IBoardPostCollectionInfo
 {
     if (infoSet?.Items == null)
     {
         return(null);
     }
     foreach (var item in infoSet.Items)
     {
         foreach (var it in item.GetInfoInterfaceTypes() ?? Enumerable.Empty <Type>())
         {
             if (it == typeof(T) && item is T i)
             {
                 return(i);
             }
         }
     }
     return(null);
 }