Exemplo n.º 1
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += DestEntity.ToLink(link, pov, this);
            eventString += " made a copy of ";
            if (FromOriginal)
            {
                eventString += "the original ";
            }
            eventString += Artifact.ToLink(link, pov, this);
            eventString += " from ";
            eventString += SourceStructure.ToLink(link, pov, this);
            eventString += " in ";
            eventString += SourceSite.ToLink(link, pov, this);
            eventString += " of ";
            eventString += SourceEntity.ToLink(link, pov, this);
            eventString += " keeping it within ";
            eventString += DestStructure.ToLink(link, pov, this);
            eventString += " in ";
            eventString += DestSite.ToLink(link, pov, this);
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
Exemplo n.º 2
0
        public void Example()
        {
            // Create our source object
            var sourceObj = new SourceEntity {
                Number         = 10,
                NumberToString = -1000
            };

            var destObj = new DestEntity();

            // Create the object mapper
            var mapper = new ResourceMapper <object>();

            mapper.LoadStandardConverters(); // Load standard converters from System.Convert (e.g., int to string)
            mapper.RegisterOneWayMapping <SourceEntity, DestEntity>(mapping =>
            {
                mapping.Set(to => to.DifferentlyNamedNumber, from => from.Number);
                // Directly assigns the source value to the destination value
                mapping.Set(to => to.DifferentlyNamedNumberToString, from => from.NumberToString);
                // There are many other variations of Set on the IMappingCollection<T> interface.  Check these out on the API
                // Unspecified properties will be automapped after this point if not explicitly ignored using mapping.Ignore
            });
            mapper.InitializeMap();

            // Perform map
            destObj = mapper.Map(sourceObj, destObj, null);

            Assert.AreEqual(sourceObj.Id, destObj.Id);
            Assert.AreEqual(sourceObj.Number, destObj.DifferentlyNamedNumber);
            Assert.AreEqual(sourceObj.NumberToString.ToString(), destObj.DifferentlyNamedNumberToString);
        }
Exemplo n.º 3
0
        public void Example()
        {
            // Create the object mapper
            var mapper = new ResourceMapper <SimpleDictionaryContext>();

            mapper.RegisterOneWayMapping <SourceEntity, DestEntity>(mapping =>
            {
                mapping.SetChildContext((from, to, context) => context.Set("ParentVariable", from.Id));
            });
            mapper.RegisterOneWayMapping <ChildEntity, ChildEntity>(mapping =>
            {
                mapping.Set(to => to.ParentId, (from, to, context) => context.Get <int>("ParentVariable"));
            });
            mapper.InitializeMap();

            // Create source object
            var sourceObj = new SourceEntity {
                Id    = 10,
                Child = new ChildEntity {
                    Variable = 103
                }
            };

            var destObj = new DestEntity();

            var mapContext = new SimpleDictionaryContext();

            // Perform map
            mapper.Map(sourceObj, destObj, mapContext);

            Assert.Throws <KeyNotFoundException>(() => mapContext.Get <int>("ParentVariable"));
            Assert.AreEqual(sourceObj.Child.Variable, destObj.Child.Variable);
            Assert.AreEqual(sourceObj.Id, destObj.Child.ParentId);
        }
Exemplo n.º 4
0
        public ArtifactCopied(List <Property> properties, World world)
            : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "artifact_id": Artifact = world.GetArtifact(Convert.ToInt32(property.Value)); break;

                case "dest_site_id": DestSite = world.GetSite(Convert.ToInt32(property.Value)); break;

                case "dest_structure_id": DestStructureId = Convert.ToInt32(property.Value); break;

                case "dest_entity_id": DestEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "source_site_id": SourceSite = world.GetSite(Convert.ToInt32(property.Value)); break;

                case "source_structure_id": SourceStructureId = Convert.ToInt32(property.Value); break;

                case "source_entity_id": SourceEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "from_original":
                    FromOriginal   = true;
                    property.Known = true;
                    break;
                }
            }

            if (DestSite != null)
            {
                DestStructure = DestSite.Structures.FirstOrDefault(structure => structure.Id == DestStructureId);
            }

            if (SourceSite != null)
            {
                SourceStructure = SourceSite.Structures.FirstOrDefault(structure => structure.Id == SourceStructureId);
            }

            Artifact.AddEvent(this);
            DestSite.AddEvent(this);
            DestStructure.AddEvent(this);
            DestEntity.AddEvent(this);
            SourceSite.AddEvent(this);
            SourceStructure.AddEvent(this);
            SourceEntity.AddEvent(this);
        }
Exemplo n.º 5
0
        public void Example()
        {
            // Create our source object
            var sourceObj = new SourceEntity {
                Number         = 10,
                NumberToString = -1000
            };

            var destObj = new DestEntity();

            // Create the object mapper
            var mapper = new ResourceMapper <object>();

            mapper.LoadStandardConverters(); // Load standard converters from System.Convert (e.g., int to string)
            mapper.RegisterTwoWayMapping <SourceEntity, DestEntity>(
                sourceToDest =>
            {
                sourceToDest.Set(to => to.DifferentlyNamedNumber, from => from.Number);
                sourceToDest.Set(to => to.DifferentlyNamedNumberToString, from => from.NumberToString);
                // Unspecified properties will be automapped after this point if not explicitly ignored using mapping.Ignore
            },
                destToSource =>
            {
                destToSource.Set(to => to.Number, from => from.DifferentlyNamedNumber);
                destToSource.Set(to => to.NumberToString, from => from.DifferentlyNamedNumberToString);
                // Unspecified properties will be automapped after this point if not explicitly ignored using mapping.Ignore
            });
            mapper.InitializeMap();

            // Perform map source => dest
            mapper.Map(sourceObj, destObj, null);
            Assert.AreEqual(sourceObj.Id, destObj.Id);
            Assert.AreEqual(sourceObj.Number, destObj.DifferentlyNamedNumber);
            Assert.AreEqual(sourceObj.NumberToString.ToString(), destObj.DifferentlyNamedNumberToString);

            // Perform map dest => source
            var newSourceObj = mapper.Map(destObj, new SourceEntity(), null);

            Assert.AreEqual(destObj.Id, newSourceObj.Id);
            Assert.AreEqual(destObj.DifferentlyNamedNumber, newSourceObj.Number);
            Assert.AreEqual(destObj.DifferentlyNamedNumberToString, newSourceObj.NumberToString.ToString());
        }
Exemplo n.º 6
0
        public void Example()
        {
            // Create our source object
            var sourceObj = new SourceEntity {
                Number = 10
            };

            sourceObj.NumberToString = -1000;

            var destObj = new DestEntity();

            // Create the object mapper
            var mapper = new ResourceMapper <object>();

            mapper.LoadStandardConverters(); // Load standard converters from System.Convert (e.g., int to string)
            mapper.RegisterOneWayMapping <SourceEntity, DestEntity>();
            mapper.InitializeMap();

            // Perform map
            mapper.Map(sourceObj, destObj, null);

            Assert.AreEqual(sourceObj.Number, destObj.Number);
            Assert.AreEqual(sourceObj.NumberToString.ToString(), destObj.NumberToString);
        }