public CollectionConfiguration Register(Accessor accessor) { var configuration = new CollectionConfiguration(accessor); _byAccessor[accessor] = configuration; return(configuration); }
public CollectionConfiguration ToConfiguration(PropertyInfo property) { if (!property.PropertyType.IsGenericEnumerable()) { throw new InvalidOperationException("BlockSettingsAttribute is only valid for generic collections"); } var configuration = new CollectionConfiguration(new SingleProperty(property)) { Name = ExpressAs }; if (ImplicitProperty.IsNotEmpty()) { var targetType = property.PropertyType.FindInterfaceThatCloses(typeof(IEnumerable <>)).GetGenericArguments()[0]; var target = Cache.GetPropertiesFor(targetType).SingleOrDefault(x => x.Key.EqualsIgnoreCase(ImplicitProperty)).Value; if (target == null) { throw new InvalidOperationException("Could not find property: " + ImplicitProperty); } configuration.Implicit = new SingleProperty(target); } return(configuration); }
public ConfigureCollectionExpression(CollectionConfiguration configuration) { _configuration = configuration; }