コード例 #1
0
 bool IPatchArray.Contains(IPatchArrayDocument item) => Contains(item.Name);
コード例 #2
0
 public bool Contains(IPatchArrayDocument <T> item) => Contains(item.Name);
コード例 #3
0
        private static TSource FirstOrDefault <TSource>(IEnumerable <TSource> source, IPatchArrayDocument patchPatchDocument)
        {
            var type = typeof(TSource);
            var typeQualifiedName = type.AssemblyQualifiedName;

            foreach (var key in patchPatchDocument.PatchKeys)
            {
                var propertyInfo = PropertyInfos[typeQualifiedName, key.Name]
                                   ?? (PropertyInfos[typeQualifiedName, key.Name] = type.GetTypeInfo().GetProperty(key.Name));

                source = source.Where(x => propertyInfo.GetValue(x).Equals(key.Value));
            }

            return(source.FirstOrDefault());
        }