示例#1
0
 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);
     }
 }
示例#3
0
        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);
        }
示例#5
0
 public RootEntityActivator(IObjectActivator entityActivator, IFitter fitter, IEntityRowComparer entityRowComparer)
 {
     this._entityActivator   = entityActivator;
     this._fitter            = fitter;
     this._entityRowComparer = entityRowComparer;
 }