Beispiel #1
0
        public void Test11()
        {
            var fakeReader = new FakeReader();
            var pocoDataFactory = new PocoDataFactory(new MapperCollection());
            var newPropertyMapper = new PropertyMapper();
            var pocoData = pocoDataFactory.ForType(typeof(NestedConvention));
            newPropertyMapper.Init(fakeReader, pocoData);
            newPropertyMapper.Map(fakeReader, new RowMapperContext() { PocoData = pocoData });

            var sw = Stopwatch.StartNew();

            for (int j = 0; j < 1000; j++)
            {
                newPropertyMapper = new PropertyMapper();
                newPropertyMapper.Init(fakeReader, pocoData);

                for (int i = 0; i < 1000; i++)
                {
                    newPropertyMapper.Map(fakeReader, new RowMapperContext() { PocoData = pocoData });
                }
            }

            sw.Stop();

            Console.WriteLine("Elapsed Time (ms): {0}", sw.ElapsedMilliseconds);
            //250
        }
Beispiel #2
0
 public void AddProperty(PropertyMapper pm)
 {
     ReadProperty rp = new ReadProperty();
     rp.Mapper = pm;
     rp.Index = 0;
     mProperties.Add(rp);
 }
Beispiel #3
0
        public void Initialize(XmlNode xmlControl)
        {
            _Controls = new List<WebControl>();
            _PropertyMapper = new PropertyMapper(xmlControl);

            _Controls.Add(new ASPxLabel { Text = _PropertyMapper.GetName() });
        }
Beispiel #4
0
        public string GetValue(NameValueCollection formCollection, XmlNode xmlControl)
        {
            _PropertyMapper = new PropertyMapper(xmlControl);

            var tag = _PropertyMapper.GetID();

            return "<" + tag + ">" + formCollection[_PropertyMapper.GetID()] + "</" + tag + ">";
        }
Beispiel #5
0
        public string GetValue(string formPrefix, NameValueCollection formCollection, XmlNode xmlControl)
        {
            _PropertyMapper = new PropertyMapper(xmlControl);

            var tag = _PropertyMapper.GetID();

            return "<" + tag + ">" + formCollection[formPrefix.Replace('$','_').Split('_')[1]+"_" + _PropertyMapper.GetID() + "_VI"] + "</" + tag + ">";
        }
        public void DateTime_Formatting_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<TestObj>(o => o.MyDateTime.ToShortDateString()));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);
            Assert.AreEqual(new DateTime(2011, 1, 1, 12, 1, 1).ToShortDateString(), propertyNameAndValues["MyDateTime"]);
        }
 public void SettingColumnOverridesFormula()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     mapper.Formula("formula");
     mapper.Column(cm => cm.Unique(true));
     mapping.formula.Should().Be.Null();
 }
        public void CanSetFormula()
        {
            var member = ForClass<MyClass>.Property(c=> c.Autoproperty);
            var mapping = new HbmProperty();
            var mapper = new PropertyMapper(member, mapping);

            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
        }
        public void BasicTypeTest()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<TestObj>(o => "my lucky number is " + o.MyInt + " set from unit test"));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);
            Assert.AreEqual("my lucky number is 10 set from unit test", propertyNameAndValues["MyInt"]);
        }
 public void SettingColumnPlainValuesOverridesFormula()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     mapper.Formula("formula");
     mapper.Column("colName");
     mapping.formula.Should().Be.Null();
     mapping.column.Should().Be("colName");
 }
 public void SettingFormulaOverridesColumnNodes()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     mapper.Column(cm=> cm.SqlType("VARCHAR(80)"));
     mapper.Formula("formula");
     mapping.formula.Should().Be("formula");
     mapping.column.Should().Be(null);
     mapping.Items.Should().Be.Null();
 }
        public void Primitive_As_Root2_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<string>(o => o.ToUpper()));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);
            
            Assert.AreEqual("I'M A STRING", propertyNameAndValues["MyString"]);
            Assert.AreEqual("I'M A SUB STRING", propertyNameAndValues["Sub.SubString"]);
            //Assert.AreEqual("I'M", propertyNameAndValues["MyList[0]"]);
        }
        public void Multiple_Formats_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<TestObj>(o => o.MyString + " I'm the exception", o => o.MyDateTime.ToShortTimeString()));
            x.Add(new ExpressionFormatter<string>(o => o + " hello world"));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);
            Assert.AreEqual(new DateTime(2011, 1, 1, 12, 1, 1).ToShortTimeString(), propertyNameAndValues["MyDateTime"]);
            Assert.AreEqual("I'm A String I'm the exception", propertyNameAndValues["MyString"]);
            Assert.AreEqual("I'm a Sub String hello world", propertyNameAndValues["Sub.SubString"]);
        }
 public void SettingFormulaOverridesColumnPlainValues()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     mapper.Column("colName");
     mapper.Length(10);
     mapper.NotNullable(true);
     mapper.Formula("formula");
     mapping.formula.Should().Be("formula");
     mapping.column.Should().Be(null);
     mapping.length.Should().Be(null);
     mapping.notnull.Should().Be(false);
     mapping.Items.Should().Be.Null();
 }
Beispiel #15
0
        public string GetValue(string formPrefix, NameValueCollection formCollection, XmlNode xmlControl)
        {
            _PropertyMapper = new PropertyMapper(xmlControl);
            var tag = _PropertyMapper.GetID();

            try
            {
                var dateTime = Convert.ToDateTime(formCollection[formPrefix + _PropertyMapper.GetID()]);

                return "<" + tag + ">" + dateTime.ToString("HH:mm") + "</" + tag + ">";
            }
            catch (Exception)
            {
                return "<" + tag + "></" + tag + ">";
            }
        }
Beispiel #16
0
        public string GetValue(NameValueCollection formCollection, XmlNode xmlControl)
        {
            _PropertyMapper = new PropertyMapper(xmlControl);
            var tag = _PropertyMapper.GetID();

            try
            {
                DateTime dateTime = Convert.ToDateTime(formCollection[_PropertyMapper.GetID()]);

                return "<" + tag + ">" + dateTime.ToString("yyyy/MM/dd") + "</" + tag + ">";
            }
            catch (Exception)
            {
                return "<" + tag + "></" + tag + ">";
            }
        }
Beispiel #17
0
 internal void Analyse()
 {
     if (!mIsAnalyse)
     {
         lock (this)
         {
             if (!mIsAnalyse)
             {
                 PartnerMapper = ObjectMapper.GetOM(Partner);
                 PartnerProperty = PartnerMapper[Column];
                 if (PartnerProperty == null)
                     throw new PeanutException(string.Format(DataMsg.COLUMN_DESC_NOTFOUND, Partner.Name, Column));
             }
         }
     }
 }
Beispiel #18
0
        public string GetValue(string formPrefix, NameValueCollection FormCollection, XmlNode xmlControl)
        {
            _PropertyMapper = new PropertyMapper(xmlControl);
            XmlNode valuesNode = _PropertyMapper.GetValuesNode();
            var result = String.Empty;

            foreach (XmlNode xmlValueNode in valuesNode.ChildNodes)
            {
                if (FormCollection[formPrefix + "rad" + xmlValueNode.GetAttribute("CCLAVE")] == "C")
                {
                    var tag = _PropertyMapper.GetID();
                    return "<" + tag + ">" + xmlValueNode.GetAttribute("CCLAVE") + "</" + tag + ">";
                }
            }

            return result;
        }
Beispiel #19
0
        public string GetValue(NameValueCollection FormCollection, XmlNode xmlControl)
        {
            _PropertyMapper = new PropertyMapper(xmlControl);
            XmlNode valuesNode = _PropertyMapper.GetValuesNode();

            var result = "<" + _PropertyMapper.GetID() + ">";

            foreach (XmlNode xmlValueNode in valuesNode.ChildNodes)
            {
                if (FormCollection["chk" + xmlValueNode.GetAttribute("CCLAVE")] == "C")
                {
                    result += "<VALUE>" + xmlValueNode.GetAttribute("CCLAVE") + "</VALUE>";
                }
            }

            return result + "</" + _PropertyMapper.GetID() + ">";
        }
Beispiel #20
0
 private void ReaderToProperty(System.Data.IDataReader reader, object obj, ReadProperty rp, PropertyMapper pm,PropertyHandler handler)
 {
     try
     {
         object dbvalue = reader[rp.Index];
         if (dbvalue != DBNull.Value)
         {
             if (pm.Cast != null)
             {
                 dbvalue = pm.Cast.ToProperty(dbvalue, pm.Handler.Property.PropertyType, obj);
             }
             handler.Set(obj, Convert.ChangeType(dbvalue, pm.Handler.Property.PropertyType));
         }
     }
     catch (Exception e_)
     {
         throw new PeanutException(string.Format(DataMsg.READER_TO_PROPERTY_ERROR, pm.ColumnName, pm.Handler.Property.Name), e_);
     }
 }
        public void Object_ToString_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<InnerObj>(o => o.ToString()));
            x.Add(new ExpressionFormatter<TestObj>(o => "I'm an Int " + (1 + o.MyInt)));
            
            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);

            Assert.AreEqual("I'm the ToString of InnerObj99", propertyNameAndValues["Sub.Inner"]);
            Assert.AreEqual("I'm an Int 11", propertyNameAndValues["MyInt"]);
        }
Beispiel #22
0
 protected AbstractViewHandler(PropertyMapper mapper)
 {
     defaultMapper = mapper;
 }
 public void WhenSetFormulaThenResetColumn()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     mapper.Column("MyColumn");
     mapper.Formula("SomeFormula");
     mapping.formula.Should().Be("SomeFormula");
     mapping.column.Should().Be.Null();
     mapping.Items.Should().Be.Null();
 }
 public void WhenSetFormulaWithNullThenDoNothing()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     mapper.Column("MyColumn");
     mapper.Formula(null);
     mapping.formula.Should().Be.Null();
     mapping.column.Should().Not.Be.Null();
 }
Beispiel #25
0
 public SkiaView(PropertyMapper <SkiaView> mapper)
 {
     Mapper = mapper ?? new PropertyMapper <SkiaView>();
 }
 protected AbstractControlDelegate(PropertyMapper <DrawableControl> mapper)
 {
     Mapper = mapper ?? new PropertyMapper <DrawableControl>();
 }
Beispiel #27
0
        /// <summary>
        /// Overloaded call to add a journal entry to nested entities like product->dependency
        /// </summary>
        /// <param name="entry"></param>
        /// <param name="userName"></param>
        /// <param name="parentProductId"></param>
        /// <param name="childProductId"></param>
        /// <returns></returns>
        private List<JournalEntry> GetJournalEntriesForChange(DbEntityEntry entry, string userName, int parentProductId, int childProductId)
        {
            List<JournalEntry> result = new List<JournalEntry>();

            var parentProduct = this.Products.Find(parentProductId);
            var childProduct = this.Products.Find(childProductId);

            var entitySetBase = this.GetEntitySet(entry.Entity.GetType());
            PropertyMapper propertyMapper = new PropertyMapper();
            string displayText = propertyMapper.GetFriendlyTextForProperty(entitySetBase.Name) ?? entitySetBase.Name;

            if (entry.State == EntityState.Added)
            {
                result.Add(new JournalEntry()
                {
                    JournalEntryCreatedBy = userName,
                    JournalEntryCreatedOn = System.DateTime.Now,
                    JournalEntryText = string.Format("<html><span style=\"font-size: 9pt;\"><b>Added:</b> {0} -&gt; {1}</span></html>", displayText, childProduct.ProductName),
                    JournalEntryType = JournalEntryType.System,
                    ProductId = parentProductId
                });
                logger.Info("Added: {0} -> '{1}'", displayText, childProduct.ProductName);
            }
            else if (entry.State == EntityState.Deleted)
            {
                result.Add(new JournalEntry()
                {
                    JournalEntryCreatedBy = userName,
                    JournalEntryCreatedOn = System.DateTime.Now,
                    JournalEntryText = string.Format("<html><span style=\"font-size: 9pt;\"><b>Removed:</b> {0} -&gt; {1}</span></html>", displayText, childProduct.ProductName),
                    JournalEntryType = JournalEntryType.System,
                    ProductId = parentProductId
                });
                logger.Info("Removed: {0} -> '{1}'", displayText, childProduct.ProductName);
            }
            else if (entry.State == EntityState.Modified)
            {
                foreach (var propertyName in entry.OriginalValues.PropertyNames)
                {
                    //Only capture the values that have changed
                    if (!object.Equals(entry.OriginalValues.GetValue<object>(propertyName), entry.CurrentValues.GetValue<object>(propertyName)))
                    {
                        string currentValue = entry.CurrentValues.GetValue<object>(propertyName) == null ? "Null" : entry.CurrentValues.GetValue<object>(propertyName).ToString();
                        currentValue = string.IsNullOrEmpty(currentValue) ? "Null" : currentValue;
                        if (currentValue.Contains("System.Byte[]"))
                        {
                            var currentByteValue = (byte[])entry.CurrentValues.GetValue<object>(propertyName);
                            var formattedHolder = FileSizeFormatter.ToFormattedString(currentByteValue.LongLength);
                            currentValue = formattedHolder.Number + " " + formattedHolder.Suffix;
                        }
                        string originalValue = entry.OriginalValues.GetValue<object>(propertyName) == null ? "Null" : entry.OriginalValues.GetValue<object>(propertyName).ToString();
                        originalValue = string.IsNullOrEmpty(originalValue) ? "Null" : originalValue;
                        if (originalValue.Contains("System.Byte[]"))
                        {
                            var originalByteValue = (byte[])entry.OriginalValues.GetValue<object>(propertyName);
                            var formattedHolder = FileSizeFormatter.ToFormattedString(originalByteValue.LongLength);
                            originalValue = formattedHolder.Number + " " + formattedHolder.Suffix;
                        }

                        displayText = propertyMapper.GetFriendlyTextForProperty(propertyName) ?? propertyName;
                        result.Add(new JournalEntry()
                        {
                            JournalEntryCreatedBy = userName,
                            JournalEntryCreatedOn = System.DateTime.Now,
                            JournalEntryText = string.Format("<html><span style=\"font-size: 9pt;\"><b>Changed:</b> {0} -&gt; <i>Old Value: '{1}'</i> <b>New Value: '{2}' </b></span></html>", displayText, originalValue, currentValue),
                            JournalEntryType = JournalEntryType.System,
                            ProductId = parentProductId
                        });
                        logger.Info("Changed: {0} -> Old Value: '{1}' New Value: {2}", displayText, originalValue, currentValue);
                    }
                }
            }
            return result;
        }
Beispiel #28
0
 public BordelessEntryHandler(PropertyMapper mapper = null)
     : base(mapper ?? BorderlessEntryMapper)
 {
 }
Beispiel #29
0
 public SelectableItemsViewHandler(PropertyMapper mapper = null) : base(mapper ?? SelectableItemsViewMapper)
 {
 }
Beispiel #30
0
 protected AbstractControlHandler(PropertyMapper <TVirtualView> mapper)
 {
     _mapper = mapper;
 }
        public void ComplexList_Format_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<string>(o => o.ToUpper()));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);

            Assert.AreEqual("LIST STRING 1", propertyNameAndValues["MyComplexList[0].SubString"]);
        }
Beispiel #32
0
 public HandlerStub(PropertyMapper mapper) : base(mapper)
 {
 }
Beispiel #33
0
 protected ItemsViewHandler(PropertyMapper mapper, CommandMapper commandMapper = null) : base(mapper, commandMapper)
 {
 }
Beispiel #34
0
 /// <summary>
 /// Updates the DTO with the information from the model
 /// </summary>
 /// <param name="model">Reference to the Model</param>
 public virtual void MapFromModel(TModelType model)
 {
     PropertyMapper.Map(model, this);
 }
Beispiel #35
0
 /// <summary>
 /// Maps the Current DTO to a Model
 /// </summary>
 /// <returns>An instance of the model defined by <typeparamref name="TModelType"/></returns>
 public virtual TModelType MapToModel()
 {
     return(PropertyMapper.Map <TModelType>(this));
 }
Beispiel #36
0
 public BlazorHandler(PropertyMapper <TVirtualView> mapper)
 {
     _mapper = mapper;
 }
Beispiel #37
0
 public PickerHandler(PropertyMapper mapper) : base(mapper)
 {
 }
        public void Deep_Property_ToString_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<TestObj>(o => o.Sub.Inner.InnerInt.ToString() + "LOLZ"));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);

            Assert.AreEqual("99LOLZ", propertyNameAndValues["Sub.Inner.InnerInt"]);
        }
Beispiel #39
0
 public ButtonHandler(PropertyMapper mapper) : base(mapper ?? ButtonMapper)
 {
 }
 protected GraphicsControlHandler(DrawMapper?drawMapper, PropertyMapper mapper) : base(mapper ?? ViewHandler.Mapper)
 {
     _drawMapper = drawMapper ?? new DrawMapper <TViewDrawable, TVirtualView>(ViewHandler.DrawMapper);
 }
Beispiel #41
0
        private void MapProperties(Type aspectDeclaringType, ITypeMapCollection typeMap)
        {
            var properties = aspectDeclaringType.GetPublicProperties();
            var propertyMapper = new PropertyMapper(typeMap);

            var mappedPropertiesEnumerable = propertyMapper.Select(map => {
                var aspectProperty = properties.FirstOrDefault(property => {
                    return property.IsMatchedTo(map.ContractMember);
                });

                return new AspectPropertyMap(map.ContractType,
                                             map.ImplementationType,
                                             map.ContractMember,
                                             map.ImplementationMember,
                                             aspectProperty);
            });

            mappedProperties = mappedPropertiesEnumerable.ToList<IAspectPropertyMap>();
        }
Beispiel #42
0
 public ShapeViewHandler(PropertyMapper mapper) : base(mapper ?? ShapeViewMapper)
 {
 }
 public void WhenSetFormulaWithMultipleLinesThenSetFormulaNode()
 {
     var member = ForClass<MyClass>.Property(c => c.Autoproperty);
     var mapping = new HbmProperty();
     var mapper = new PropertyMapper(member, mapping);
     var formula = @"Line1
     Line2";
     mapper.Formula(formula);
     mapping.formula.Should().Be.Null();
     mapping.Items.FirstOrDefault().Should().Not.Be.Null().And.Be.OfType<HbmFormula>();
     var hbmFormula = (HbmFormula)(mapping.Items.First());
     hbmFormula.Text.Length.Should().Be(2);
     hbmFormula.Text[0].Should().Be("Line1");
     hbmFormula.Text[1].Should().Be("Line2");
 }
Beispiel #44
0
 protected AbstractHandler(PropertyMapper <TVirtualView> mapper)
 {
     this.mapper = mapper;
 }
Beispiel #45
0
 public ItemsViewHandler(PropertyMapper mapper = null) : base(mapper ?? ItemsViewMapper)
 {
 }
 public CarouselViewHandler(PropertyMapper mapper = null) : base(mapper ?? CarouselViewMapper)
 {
 }
Beispiel #47
0
 public PropertyFileRepository(IFileReader loader, PropertyMapper mapper) : base(loader, mapper)
 {
 }
 protected void SetMapper(PropertyMapper <TVirtualView> mapper)
 {
     _mapper = mapper;
 }
Beispiel #49
0
 public SwitchHandler(PropertyMapper mapper) : base(mapper ?? SwitchMapper)
 {
 }
Beispiel #50
0
 protected ViewHandler(PropertyMapper mapper)
 {
     _ = mapper ?? throw new ArgumentNullException(nameof(mapper));
     _defaultMapper = mapper;
     _mapper        = _defaultMapper;
 }
 protected AbstractControlDelegate()
 {
     Mapper = new PropertyMapper <DrawableControl>();
 }
Beispiel #52
0
 public ViewHandlerStub(PropertyMapper mapper = null) : base(mapper ?? MockViewMapper)
 {
 }
Beispiel #53
0
 public StepperHandler(PropertyMapper mapper) : base(mapper ?? StepperMapper)
 {
 }
 /// <summary>
 /// Maps an argument value to the property specified by the expression.
 /// </summary>
 /// <param name="expression">The expression that identifies the property.</param>
 /// <returns>Configuration.</returns>
 public ArgumentConfiguration <TOptions, TValue> ToProperty(Expression <Func <TOptions, TValue> > expression) =>
 Using(PropertyMapper <TOptions, TValue> .Create(expression));
Beispiel #55
0
 protected PropertyMapper <T> GetRendererOverrides <T>() where T : IView => (PropertyMapper <T>)(propertyMapper as PropertyMapper <T> ?? (propertyMapper = new PropertyMapper <T>()));
Beispiel #56
0
 public LabelHandler(PropertyMapper mapper) : base(mapper ?? LabelMapper)
 {
 }
Beispiel #57
0
        /// <summary>
        /// Read all properties from a type - store in a static cache - exclude: Id and [BsonIgnore]
        /// </summary>
        public static Dictionary<string, PropertyMapper> GetProperties(Type type, Func<string, string> resolvePropertyName)
        {
            var dict = new Dictionary<string, PropertyMapper>(StringComparer.OrdinalIgnoreCase);
            var id = GetIdProperty(type);
            var ignore = typeof(BsonIgnoreAttribute);
            var idAttr = typeof(BsonIdAttribute);
            var fieldAttr = typeof(BsonFieldAttribute);
            var indexAttr = typeof(BsonIndexAttribute);
            var props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);

            foreach (var prop in props)
            {
                // ignore indexer property
                if (prop.GetIndexParameters().Length > 0) continue;

                // ignore not read/write
                if (!prop.CanRead || !prop.CanWrite) continue;

                // [BsonIgnore]
                if (prop.IsDefined(ignore, false)) continue;

                // check if property has [BsonField]
                var bsonField = prop.IsDefined(fieldAttr, false);

                // create getter/setter IL function
                var getter = CreateGetMethod(type, prop, bsonField);
                var setter = CreateSetMethod(type, prop, bsonField);

                // if not getter or setter - no mapping
                if (getter == null) continue;

                var name = id != null && id.Equals(prop) ? "_id" : resolvePropertyName(prop.Name);

                // check if property has [BsonField] with a custom field name
                if (bsonField)
                {
                    var field = (BsonFieldAttribute)prop.GetCustomAttributes(fieldAttr, false).FirstOrDefault();
                    if (field != null && field.Name != null) name = field.Name;
                }

                // check if property has [BsonId] to get with was setted AutoId = true
                var autoId = (BsonIdAttribute)prop.GetCustomAttributes(idAttr, false).FirstOrDefault();

                // checks if this proerty has [BsonIndex]
                var index = (BsonIndexAttribute)prop.GetCustomAttributes(indexAttr, false).FirstOrDefault();

                // if is _id field, do not accept index definition
                if (name == "_id") index = null;

                // test if field name is OK (avoid to check in all instances) - do not test internal classes, like DbRef
                if (BsonDocument.IsValidFieldName(name) == false) throw LiteException.InvalidFormat(prop.Name, name);

                // create a property mapper
                var p = new PropertyMapper
                {
                    AutoId = autoId == null ? true : autoId.AutoId,
                    FieldName = name,
                    PropertyName = prop.Name,
                    PropertyType = prop.PropertyType,
                    IndexOptions = index == null ? null : index.Options,
                    Getter = getter,
                    Setter = setter
                };

                dict.Add(prop.Name, p);
            }

            return dict;
        }
Beispiel #58
0
 public WebViewHandler(PropertyMapper mapper) : base(mapper ?? WebViewMapper)
 {
 }
        public void Enum_Format_Test()
        {
            TestObj x1 = InitializeMocks();
            var x = new StringFormatterCollection();
            x.Add(new ExpressionFormatter<TestObj>(o => o.MyEnum.ToString() + " hello"));

            var propertyNameAndValues = new PropertyMapper(x).GetMappings(x1);
            Assert.AreEqual("e1 hello", propertyNameAndValues["MyEnum.e1"]);
        }
Beispiel #60
0
 public LayoutHandler(PropertyMapper mapper) : base(mapper ?? LayoutMapper)
 {
 }