public CollectionObjectFitter(IObjectActivator elementActivator, IEntityRowComparer entityRowComparer, IFitter elementFitter, PropertyDescriptor elementOwnerProperty) { this._elementActivator = elementActivator; this._entityRowComparer = entityRowComparer; this._elementFitter = elementFitter; this._elementOwnerProperty = elementOwnerProperty; }
private void InitializeFitters() { foreach (AnalyticRuleType ruleType in Enum.GetValues(typeof(AnalyticRuleType))) { FitterFactory factory = new FitterFactory(vehicleInformation); IFitter fitter = factory.Create(ruleType); fitters.Add(fitter); } }
public IFitter CreateFitter(IDbContext dbContext) { List <Tuple <PropertyDescriptor, IFitter> > includings = new List <Tuple <PropertyDescriptor, IFitter> >(); TypeDescriptor typeDescriptor = EntityTypeContainer.GetDescriptor(this.ConstructorDescriptor.ConstructorInfo.DeclaringType); foreach (var item in this.ComplexMembers.Concat(this.CollectionMembers)) { IFitter propFitter = item.Value.CreateFitter(dbContext); includings.Add(new Tuple <PropertyDescriptor, IFitter>(typeDescriptor.GetPropertyDescriptor(item.Key), propFitter)); } ComplexObjectFitter fitter = new ComplexObjectFitter(includings); return(fitter); }
public IFitter CreateFitter(IDbContext dbContext) { IFitter elementFitter = this.ElementActivatorCreator.CreateFitter(dbContext); ComplexObjectActivatorCreator elementActivatorCreator = (ComplexObjectActivatorCreator)this.ElementActivatorCreator; TypeDescriptor elementTypeDescriptor = EntityTypeContainer.GetDescriptor(elementActivatorCreator.ObjectType); List <Tuple <PropertyDescriptor, int> > keys = new List <Tuple <PropertyDescriptor, int> >(elementTypeDescriptor.PrimaryKeys.Count); foreach (PrimitivePropertyDescriptor primaryKey in elementTypeDescriptor.PrimaryKeys) { keys.Add(new Tuple <PropertyDescriptor, int>(primaryKey, elementActivatorCreator.PrimitiveMembers[primaryKey.Definition.Property])); } IEntityRowComparer entityRowComparer = new EntityRowComparer(keys); PropertyDescriptor elementOwnerProperty = elementTypeDescriptor.ComplexPropertyDescriptors.Where(a => a.Definition.Property.PropertyType == this.OwnerType).First(); CollectionObjectFitter fitter = new CollectionObjectFitter(this.ElementActivatorCreator.CreateObjectActivator(dbContext), entityRowComparer, elementFitter, elementOwnerProperty); return(fitter); }
public RootEntityActivator(IObjectActivator entityActivator, IFitter fitter, IEntityRowComparer entityRowComparer) { this._entityActivator = entityActivator; this._fitter = fitter; this._entityRowComparer = entityRowComparer; }