Esempio n. 1
0
        private static void Groups(
            ICustomizersHolder customizerHolder,
            object[] attributes)
        {
            var attribute = attributes.GetAttribute <GroupsAttribute>();

            if (attribute != null)
            {
                var membersByGroup = customizerHolder.Type.GetProperties()
                                     .Where(x => x.GetCustomAttribute <DisplayAttribute>() != null)
                                     .GroupBy(x => x.GetCustomAttribute <DisplayAttribute>().GroupName)
                                     .ToDictionary(x => x.Key, x => x.ToList());
                foreach (var group in attribute.Groups)
                {
                    var trimmedGroup = group.TrimEnd('*');
                    var properties   = Enumerable.Empty <PropertyInfo>();
                    if (membersByGroup.ContainsKey(group))
                    {
                        properties = properties.Union(membersByGroup[group]);
                    }
                    if (membersByGroup.ContainsKey(trimmedGroup))
                    {
                        properties = properties.Union(membersByGroup[trimmedGroup]);
                    }
                    customizerHolder.PropertyGroup(trimmedGroup, group.EndsWith("*"), properties);
                }
            }
        }
 private static void Groups(
     ICustomizersHolder customizerHolder,
     object[] attributes)
 {
     var attribute = attributes.GetAttribute<GroupsAttribute>();
     if (attribute != null)
     {
         var membersByGroup = customizerHolder.Type.GetProperties()
             .GroupBy(x => x.GetCustomAttribute<DisplayAttribute>()?.GroupName)
             .ToDictionary(x => x.Key, x => x.ToList());
         foreach (var group in attribute.Groups)
         {
             customizerHolder.PropertyGroup(group.TrimEnd('*'), group.EndsWith("*"), membersByGroup[group]);
         }
     }
 }
 private static void Groups(
     ICustomizersHolder customizerHolder,
     object[] attributes)
 {
     var attribute = attributes.GetAttribute<GroupsAttribute>();
     if (attribute != null)
     {
         var membersByGroup = customizerHolder.Type.GetProperties()
             .Where(x => x.GetCustomAttribute<DisplayAttribute>() != null)
             .GroupBy(x => x.GetCustomAttribute<DisplayAttribute>().GroupName)
             .ToDictionary(x => x.Key, x => x.ToList());
         foreach (var group in attribute.Groups)
         {
             var trimmedGroup = group.TrimEnd('*');
             var properties = Enumerable.Empty<PropertyInfo>();
             if (membersByGroup.ContainsKey(group))
                 properties = properties.Union(membersByGroup[group]);
             if (membersByGroup.ContainsKey(trimmedGroup))
                 properties = properties.Union(membersByGroup[trimmedGroup]);
             customizerHolder.PropertyGroup(trimmedGroup, group.EndsWith("*"), properties);
         }
     }
 }