Exemplo n.º 1
0
        public void IndexByNameSet()
        {
            var meta       = new DynamicMeta(new Pluralizer());
            var population = new Default.DynamicPopulation(meta);

            var(property, owner)     = meta.AddOneToOne <Organisation, Person>("Owner");
            var(organisation, named) = meta.AddOneToOne <Organisation, Person>("Named");

            dynamic acme  = population.New <Organisation>();
            dynamic gizmo = population.New <Organisation>();
            dynamic jane  = population.New <Person>();
            dynamic john  = population.New <Person>();

            acme["Owner"] = jane;

            Assert.Equal(jane, acme.Owner);
            Assert.Equal(acme, jane.OrganisationWhereOwner);
            Assert.Equal(jane, acme["Owner"]);
            Assert.Equal(acme, jane["OrganisationWhereOwner"]);
            Assert.Equal(jane, acme[owner]);
            Assert.Equal(acme, jane[property]);

            Assert.Null(gizmo.Owner);
            Assert.Null(john.OrganisationWhereOwner);
            Assert.Null(gizmo["Owner"]);
            Assert.Null(john["OrganisationWhereOwner"]);
            Assert.Null(gizmo[owner]);
            Assert.Null(john[property]);

            // Wrong Type
            Assert.Throws <ArgumentException>(() =>
            {
                acme["Owner"] = gizmo;
            });
        }
Exemplo n.º 2
0
        public DynamicPopulation(DynamicMeta meta, params Action <DynamicMeta>[] builders)
        {
            this.Meta           = meta;
            this.DerivationById = new Dictionary <string, IDynamicDerivation>();
            this.database       = new DynamicDatabase(this.Meta);

            foreach (Action <DynamicMeta> builder in builders)
            {
                builder?.Invoke(this.Meta);
            }
        }
Exemplo n.º 3
0
        internal DynamicDatabase(DynamicMeta meta)
        {
            this.meta = meta;

            this.roleByAssociationByRoleType        = new Dictionary <IDynamicRoleType, Dictionary <DynamicObject, object> >();
            this.associationByRoleByAssociationType = new Dictionary <IDynamicAssociationType, Dictionary <DynamicObject, object> >();

            this.changedRoleByAssociationByRoleType =
                new Dictionary <IDynamicRoleType, Dictionary <DynamicObject, object> >();
            this.changedAssociationByRoleByAssociationType =
                new Dictionary <IDynamicAssociationType, Dictionary <DynamicObject, object> >();
        }
Exemplo n.º 4
0
        public void IndexSet()
        {
            var meta = new DynamicMeta(new Pluralizer());

            meta.AddUnit <Person, string>("FirstName");
            var population = new Default.DynamicPopulation(meta);

            dynamic jubayer = population.New <Person>();
            dynamic walter  = population.New <Person>();

            jubayer.FirstName = "Jubayer";
            walter.FirstName  = "Walter";

            Assert.Equal("Jubayer", jubayer.FirstName);
            Assert.Equal("Walter", walter.FirstName);
        }
Exemplo n.º 5
0
 public DynamicChangeSet(DynamicMeta meta, Dictionary <IDynamicRoleType, Dictionary <DynamicObject, object> > roleByAssociationByRoleType, Dictionary <IDynamicAssociationType, Dictionary <DynamicObject, object> > associationByRoleByAssociationType)
 {
     this.Meta = meta;
     this.roleByAssociationByRoleType = roleByAssociationByRoleType;
     this.associationByRoleByRoleType = associationByRoleByAssociationType;
 }