public override void Visit(AnyMapping mapping)
        {
            var writer = serviceLocator.GetWriter<AnyMapping>();
            var xml = writer.Write(mapping);

            document.ImportAndAppendChild(xml);
        }
예제 #2
0
        public override void ProcessAny(AnyMapping mapping)
        {
            var conventions = finder.Find <IAnyConvention>();

            Apply <IAnyInspector, IAnyInstance>(conventions,
                                                new AnyInstance(mapping));
        }
예제 #3
0
        public override void Visit(AnyMapping mapping)
        {
            var writer = serviceLocator.GetWriter <AnyMapping>();
            var xml    = writer.Write(mapping);

            document.ImportAndAppendChild(xml);
        }
예제 #4
0
        protected AnyMapping any_with_column(string column)
        {
            var any = new AnyMapping();

            any.AddIdentifierColumn(Layer.Defaults, new ColumnMapping(column));
            any.AddTypeColumn(Layer.Defaults, new ColumnMapping(column));
            return(any);
        }
예제 #5
0
        public void ShouldWriteMetaValues()
        {
            var mapping = new AnyMapping();

            mapping.AddMetaValue(new MetaValueMapping());

            writer.VerifyXml(mapping)
            .Element("meta-value").Exists();
        }
        public void ShouldWriteIdentifierColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(new ColumnMapping { Name = "Column1" });

            writer.VerifyXml(mapping)
                .Element("column").Exists();
        }
예제 #7
0
        public void ShouldWriteIdentifierColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(Layer.Defaults, new ColumnMapping("Column1"));

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
        protected AnyMapping any_with_column(string column)
        {
            var any = new AnyMapping();

            any.AddIdentifierDefaultColumn(new ColumnMapping { Name = column });
            any.AddTypeDefaultColumn(new ColumnMapping { Name = column });

            return any;
        }
예제 #9
0
        public void ShouldWriteTypeColumnsBeforeIdentifiers()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(Layer.Defaults, new ColumnMapping("Column1"));
            mapping.AddTypeColumn(Layer.Defaults, new ColumnMapping("Column2"));

            writer.VerifyXml(mapping)
            .Element("column[1]").HasAttribute("name", "Column2");
        }
예제 #10
0
        public void ShouldWriteIdentifierColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(new ColumnMapping {
                Name = "Column1"
            });

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
예제 #11
0
        AnyMapping IAnyMappingProvider.GetAnyMapping()
        {
            var mapping = new AnyMapping(attributes.CloneInner());

            if (typeColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Type Column");
            }
            if (identifierColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Identifier Column");
            }
            if (!mapping.IsSpecified("IdType"))
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an IdType");
            }

            mapping.ContainingEntityType = entity;

            if (!mapping.IsSpecified("Name"))
            {
                mapping.Name = property.Name;
            }

            if (!mapping.IsSpecified("MetaType"))
            {
                if (metaValues.Count() > 0)
                {
                    metaValues.Each(mapping.AddMetaValue);
                    mapping.MetaType = new TypeReference(typeof(string));
                }
                else
                {
                    mapping.MetaType = new TypeReference(property.PropertyType);
                }
            }

            foreach (var column in typeColumns)
            {
                mapping.AddTypeColumn(new ColumnMapping {
                    Name = column
                });
            }

            foreach (var column in identifierColumns)
            {
                mapping.AddIdentifierColumn(new ColumnMapping {
                    Name = column
                });
            }

            return(mapping);
        }
예제 #12
0
        protected AnyMapping any_with_column(string column)
        {
            var any = new AnyMapping();

            any.AddIdentifierDefaultColumn(new ColumnMapping {
                Name = column
            });
            any.AddTypeDefaultColumn(new ColumnMapping {
                Name = column
            });

            return(any);
        }
예제 #13
0
        AnyMapping IAnyMappingProvider.GetAnyMapping()
        {
            var mapping = new AnyMapping(attributes.Clone());

            if (typeColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Type Column");
            }
            if (identifierColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Identifier Column");
            }
            if (!idTypeSet)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an IdType");
            }

            mapping.ContainingEntityType = entity;

            mapping.Set(x => x.Name, Layer.Defaults, member.Name);

            if (!mapping.IsSpecified("MetaType"))
            {
                mapping.Set(x => x.MetaType, Layer.Defaults, new TypeReference(member.PropertyType));
            }

            if (metaValues.Count() > 0)
            {
                metaValues.Each(mapping.AddMetaValue);
                mapping.Set(x => x.MetaType, Layer.Defaults, new TypeReference(typeof(string)));
            }

            foreach (var column in typeColumns)
            {
                var columnMapping = new ColumnMapping();
                columnMapping.Set(x => x.Name, Layer.Defaults, column);
                mapping.AddTypeColumn(Layer.UserSupplied, columnMapping);
            }


            foreach (var column in identifierColumns)
            {
                var columnMapping = new ColumnMapping();
                columnMapping.Set(x => x.Name, Layer.Defaults, column);
                mapping.AddIdentifierColumn(Layer.UserSupplied, columnMapping);
            }

            return(mapping);
        }
        public void LazyShouldDefaultToFalse()
        {
            var mapping = new AnyMapping();

            mapping.Lazy.ShouldBeFalse();
        }
        public void ShouldWriteTypeColumnsBeforeIdentifiers()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(Layer.Defaults, new ColumnMapping("Column1"));
            mapping.AddTypeColumn(Layer.Defaults, new ColumnMapping("Column2"));

            writer.VerifyXml(mapping)
                .Element("column[1]").HasAttribute("name", "Column2");
        }
예제 #16
0
 public void AddAny(AnyMapping mapping)
 {
     mappedMembers.AddAny(mapping);
 }
 public override void Visit(AnyMapping mapping)
 {
     mapping.AcceptVisitor(this);
 }
 public void AddOrReplaceAny(AnyMapping mapping)
 {
     mappedMembers.AddOrReplaceAny(mapping);
 }
 public virtual void Visit(AnyMapping mapping)
 {
 }
예제 #20
0
 public AnyInstance(AnyMapping mapping) : base(mapping)
 {
     this.mapping = mapping;
 }
 public override void Visit(AnyMapping mapping)
 {
     mapping.AcceptVisitor(this);
 }
예제 #22
0
 public AnyInspector(AnyMapping mapping)
 {
     this.mapping = mapping;
     propertyMappings.Map(x => x.LazyLoad, x => x.Lazy);
 }
 public void AddOrReplaceAny(AnyMapping mapping)
 {
     anys.RemoveAll(x => x.Name == mapping.Name);
     sequencedMappingObject.RemoveAll(x => x is AnyMapping && ((AnyMapping)x).Name == mapping.Name);
     anys.Add(mapping);
     sequencedMappingObject.Add(mapping);
 }
        public void UpdateShouldDefaultToTrue()
        {
            var mapping = new AnyMapping();

            mapping.Update.ShouldBeTrue();
        }
        protected AnyMapping any_with_column(string column)
        {
            var any = new AnyMapping();

            any.AddIdentifierColumn(Layer.Defaults, new ColumnMapping(column));
            any.AddTypeColumn(Layer.Defaults, new ColumnMapping(column));
            
            return any;
        }
        public void OptimisticLockShouldDefaultToTrue()
        {
            var mapping = new AnyMapping();

            mapping.OptimisticLock.ShouldBeTrue();
        }
        public void ShouldWriteMetaValues()
        {
            var mapping = new AnyMapping();

            mapping.AddMetaValue(new MetaValueMapping());

            writer.VerifyXml(mapping)
                .Element("meta-value").Exists();
        }
 public virtual void Visit(AnyMapping mapping)
 {
 }
 public void CreateDsl()
 {
     mapping   = new AnyMapping();
     inspector = new AnyInspector(mapping);
 }
예제 #30
0
 public virtual void VisitAny(AnyMapping anyMapping)
 {
 }
예제 #31
0
 public AnyInspector(AnyMapping mapping)
 {
     this.mapping = mapping;
     propertyMappings.Map(x => x.LazyLoad, x => x.Lazy);
 }
        public void ShouldWriteTypeColumnsBeforeIdentifiers()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(new ColumnMapping { Name = "Column1" });
            mapping.AddTypeColumn(new ColumnMapping { Name = "Column2" });

            writer.VerifyXml(mapping)
                .Element("column[1]").HasAttribute("name", "`Column2`");
        }
 public void AddAny(AnyMapping mapping)
 {
     mappedMembers.AddAny(mapping);
 }
 public void AddAny(AnyMapping mapping)
 {
     mergedComponent.AddAny(mapping);
 }
 public virtual void ProcessAny(AnyMapping mapping)
 {
 }
예제 #36
0
 public void AddAny(AnyMapping mapping)
 {
     mergedComponent.AddAny(mapping);
 }
예제 #37
0
 public void AddOrReplaceAny(AnyMapping mapping)
 {
     mappedMembers.AddOrReplaceAny(mapping);
 }
        public void ShouldWriteIdentifierColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(Layer.Defaults, new ColumnMapping("Column1"));

            writer.VerifyXml(mapping)
                .Element("column").Exists();
        }
 public void CreateDsl()
 {
     mapping = new AnyMapping();
     inspector = new AnyInspector(mapping);
 }
        public void InsertShouldDefaultToTrue()
        {
            var mapping = new AnyMapping();

            mapping.Insert.ShouldBeTrue();
        }
 public virtual void ProcessAny(AnyMapping mapping)
 {
 }
예제 #42
0
        public void AddAny(AnyMapping mapping)
        {
            if (anys.Exists(x => x.Name == mapping.Name))
                throw new InvalidOperationException("Tried to add any '" + mapping.Name + "' when already added.");

            anys.Add(mapping);
        }
예제 #43
0
 public void AddOrReplaceAny(AnyMapping mapping)
 {
     anys.RemoveAll(x => x.Name == mapping.Name);
     anys.Add(mapping);
 }
예제 #44
0
 public AnyInstance(AnyMapping mapping) : base(mapping)
 {
     this.mapping = mapping;
 }