Beispiel #1
0
        public static ColumnMappingCollection <T> AutomapForType <T>()
        {
            var allProperties      = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public);
            var readableProperties = allProperties.Where(p => p.CanRead &&
                                                         p.GetGetMethod() != null &&
                                                         p.GetGetMethod().IsPublic&&
                                                         !p.GetIndexParameters().Any());

            var map = new ColumnMappingCollection <T>();

            foreach (var property in readableProperties)
            {
                var local = property;

                map.Add(new ColumnMapping <T>
                {
                    Index     = map.Count,
                    Name      = local.Name,
                    Title     = FormatName(local.Name),
                    DataType  = local.PropertyType,
                    Populator = o => local.GetValue(o, null)
                });
            }

            return(map);
        }
Beispiel #2
0
        public void Populate <T>(Control grid, ColumnMappingCollection <T> mappings, IEnumerable <T> collection)
        {
            Check.Argument(grid, "grid");
            Check.Argument(mappings, "mappings");
            Check.Argument(collection, "collection");

            var populator = _populators.GetOrDefault(grid.GetType());

            if (populator == null)
            {
                throw new MissingPopulatorException(String.Format("No populator has been registered for {0} grids.", grid.GetType()));
            }

            try
            {
                populator.BeginEdit(grid);

                foreach (var current in collection)
                {
                    var item = current;
                    var row  = mappings.ToDictionary(x => x.Index, x => x.GetValueFrom(item));

                    populator.AddRow(grid, current, row);
                }
            }
            finally
            {
                populator.EndEdit(grid);
            }
        }
Beispiel #3
0
        public static ColumnMappingCollection <T> ForType <T>(params Action <FluentColumnMapping <T> >[] columns)
        {
            var collection = new ColumnMappingCollection <T>();

            foreach (var fluentConfig in columns)
            {
                var config = new ColumnMapping <T>();
                fluentConfig.Invoke(new FluentColumnMapping <T>(config));

                collection.Add(config);
            }

            return(collection);
        }
Beispiel #4
0
        public void ConfigureColumns <T>(Control grid, ColumnMappingCollection <T> mapping)
        {
            Check.Argument(grid, "grid");
            Check.Argument(mapping, "mapping");

            var populator = _populators.GetOrDefault(grid.GetType());

            if (populator == null)
            {
                throw new MissingPopulatorException(String.Format("No populator has been registered for {0} grids.", grid.GetType()));
            }

            populator.ClearColumns(grid);

            foreach (var map in mapping)
            {
                populator.AddColumn(grid, map);
            }
        }
Beispiel #5
0
 public static void Populate <T>(Control grid, ColumnMappingCollection <T> config, IEnumerable <T> collection)
 {
     Handler.Populate(grid, config, collection);
 }
Beispiel #6
0
 public static void ConfigureColumns <T>(Control grid, ColumnMappingCollection <T> mapping)
 {
     Handler.ConfigureColumns(grid, mapping);
 }