コード例 #1
0
ファイル: MapAtRuntime.cs プロジェクト: zqlovejyc/AutoMapper
            public Initialize()
            {
                appointmentStatusHistory1 = new Entity2 {
                    Id = Guid.NewGuid()
                };
                center1 = new Entity8 {
                    Id = Guid.NewGuid()
                };
                insurance1 = new Entity12 {
                    Id = Guid.NewGuid()
                };
                patient1 = new Entity14 {
                    Id = Guid.NewGuid()
                };
                resource1 = new Entity17 {
                    Id = Guid.NewGuid()
                };
                service1 = new Entity20 {
                    Id = Guid.NewGuid()
                };
                speciality1 = new Entity22 {
                    Id = Guid.NewGuid()
                };

                service1.Entity22   = speciality1;
                service1.Entity22Id = speciality1.Id;
            }
コード例 #2
0
        /// <summary>
        /// Create a new Entity2 object.
        /// </summary>
        /// <param name="id">Initial value of Id.</param>
        public static Entity2 CreateEntity2(int id)
        {
            Entity2 entity2 = new Entity2();

            entity2.Id = id;
            return(entity2);
        }
コード例 #3
0
ファイル: EventTester.cs プロジェクト: ostat/Beef
        public async Task PublishValueAsync_ValueIUniqueKey()
        {
            ExecutionContext.Reset();
            var start = Cleaner.Clean(DateTime.Now);

            var tep = new TestEventPublisher();
            var v   = new Entity2 {
                A = 123, B = "Abc"
            };

            await tep.PublishValue(v, "domain.entity.123", "create").SendAsync().ConfigureAwait(false);

            Assert.AreEqual(1, tep.Events.Count);
            var ed = (EventData <Entity2>)tep.Events[0];

            Assert.IsNotNull(ed);
            Assert.IsNotNull(ed.EventId);
            Assert.AreEqual("domain.entity.123", ed.Subject);
            Assert.AreEqual("create", ed.Action);
            Assert.AreEqual(new object[] { 123, "Abc" }, ed.Key);
            Assert.IsTrue(ed.HasValue);
            Assert.IsTrue(ed.Timestamp >= start);
            Assert.AreEqual(v, ed.Value);
            Assert.IsNull(ed.PartitionKey);
        }
コード例 #4
0
        public async Task SelectNonAbstractDescendantAsyncTest()
        {
            Require.AllFeaturesSupported(ProviderFeatures.Multischema);

            InitializeSchemas();

            BuildDomain(DefaultSchema, DomainUpgradeMode.Recreate, typeof(Entity1)).Dispose();
            var domain = BuildDomain(DefaultSchema, DomainUpgradeMode.PerformSafely, typeof(Entity1), typeof(Entity2));

            using (domain)
                using (var session = domain.OpenSession())
                    using (var transaction = session.OpenTransaction()) {
                        for (var i = 0; i < 10; i++)
                        {
                            _ = new Entity1 {
                                Name        = "1 before test " + i,
                                StringValue = "1 before test " + i
                            };
                            _ = new Entity2 {
                                Name     = "1 before test " + i,
                                IntValue = i
                            };
                        }
                        transaction.Complete();
                    }

            BuildDomain(AlternativeSchema, DomainUpgradeMode.Recreate, typeof(Entity2)).Dispose();
            domain = BuildDomain(AlternativeSchema, DomainUpgradeMode.PerformSafely, typeof(Entity2), typeof(Entity1));

            using (domain)
                using (var session = domain.OpenSession())
                    using (var transaction = session.OpenTransaction()) {
                        for (var i = 0; i < 10; i++)
                        {
                            _ = new Entity1 {
                                Name        = "2 before test " + i,
                                StringValue = "1 before test " + i
                            };
                            _ = new Entity2 {
                                Name     = "2 before test " + i,
                                IntValue = i
                            };
                        }
                        transaction.Complete();
                    }

            domain = await BuildDomainAsync(DefaultSchema, DomainUpgradeMode.Validate, typeof(Entity1), typeof(Entity2));

            await using (domain) {
                var nodeConfiguration = new NodeConfiguration(AlternativeSchema)
                {
                    UpgradeMode = DomainUpgradeMode.Validate
                };
                nodeConfiguration.SchemaMapping.Add(DefaultSchema, AlternativeSchema);
                _ = await domain.StorageNodeManager.AddNodeAsync(nodeConfiguration);

                RunTest(domain, WellKnown.DefaultNodeId, NonAbstractTypesTestBody);
                RunTest(domain, AlternativeSchema, NonAbstractTypesTestBody);
            }
        }
コード例 #5
0
        public void GuidEntityEqualsWithTwoNullsEntitiesDifferentTypeReturnFalse()
        {
            Entity1 e1       = new Entity1();
            Entity2 e2       = new Entity2();
            var     equality = Equals(e1, e2);

            Assert.AreEqual(false, equality);
        }
 public void Test01()
 {
     using (var session = Domain.OpenSession())
         using (var tx = session.OpenTransaction()) {
             _ = new Entity1();
             _ = new Entity2();
         }
 }
コード例 #7
0
        public void CannotEquateObjectsWithSameIdButDifferentTypes()
        {
            var obj1 = new Entity1();
            var obj2 = new Entity2();

            EntityIdSetter.SetIdOf(obj1, 1);
            EntityIdSetter.SetIdOf(obj2, 1);

            // ReSharper disable once SuspiciousTypeConversion.Global
            obj1.Equals(obj2).Should().BeFalse();
        }
コード例 #8
0
        public void RuleIsValid_ShouldBeTrue()
        {
            // ARRANGE
            var rule   = new Rule <Entity2>(e => e.StringProperty2 != "some string");
            var entity = new Entity2 {
                StringProperty2 = "value"
            };

            // ACT
            var condition = rule.IsValid(entity);

            // ASSERT
            Assert.IsTrue(condition);
        }
コード例 #9
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string dispute = _unknownDispute;

            switch (Dispute)
            {
            case Dispute.FishingRights:
                dispute = "fishing rights";
                break;

            case Dispute.GrazingRights:
                dispute = "grazing rights";
                break;

            case Dispute.LivestockOwnership:
                dispute = "livestock ownership";
                break;

            case Dispute.Territory:
                dispute = "territory";
                break;

            case Dispute.WaterRights:
                dispute = "water rights";
                break;

            case Dispute.RightsOfWay:
                dispute = "rights of way";
                break;
            }

            string eventString = GetYearTime();

            eventString += Entity1 != null?Entity1.ToLink(link, pov, this) : "UNKNOWN ENTITY";

            eventString += " of ";
            eventString += Site1 != null?Site1.ToLink(link, pov, this) : "UNKNOWN SITE";

            eventString += " and ";
            eventString += Entity2 != null?Entity2.ToLink(link, pov, this) : "UNKNOWN ENTITY";

            eventString += " of ";
            eventString += Site2 != null?Site2.ToLink(link, pov, this) : "UNKNOWN SITE";

            eventString += " became embroiled in a dispute over " + dispute;
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
コード例 #10
0
        private void MainTestBody(Domain domain, string nodeId)
        {
            var baseName    = "base " + nodeId;
            var entity1Name = "entity1 " + nodeId;
            var entity2Name = "entity2 " + nodeId;
            var stringValue = "entity1 " + nodeId;
            var intValue    = stringValue.Length;

            var selectedNode = domain.StorageNodeManager.GetNode(nodeId);

            using (var session = selectedNode.OpenSession())
                using (var tx = session.OpenTransaction()) {
                    var baseEntity = new BaseEntity {
                        Name = baseName
                    };
                    var entity1 = new Entity1 {
                        Name = entity1Name, StringValue = stringValue
                    };
                    var entity2 = new Entity2 {
                        Name = entity2Name, IntValue = intValue
                    };
                    tx.Complete();
                }

            selectedNode = domain.StorageNodeManager.GetNode(nodeId);
            using (var session = selectedNode.OpenSession())
                using (var tx = session.OpenTransaction()) {
                    var baseTypeId = GetTypeId(session, typeof(BaseEntity));
                    var baseEntity = session.Query.All <BaseEntity>().Single(e => e.TypeId == baseTypeId);
                    Assert.That(baseEntity.Name, Is.EqualTo(baseName));
                    Assert.That(baseEntity.TypeId, Is.EqualTo(baseTypeId));

                    var entity1 = session.Query.All <Entity1>().Single();
                    Assert.That(entity1.Name, Is.EqualTo(entity1Name));
                    Assert.That(entity1.StringValue, Is.EqualTo(stringValue));
                    Assert.That(entity1.TypeId, Is.EqualTo(GetTypeId(session, typeof(Entity1))));

                    var entity2 = session.Query.All <Entity2>().Single();
                    Assert.That(entity2.Name, Is.EqualTo(entity2Name));
                    Assert.That(entity2.IntValue, Is.EqualTo(intValue));
                    Assert.That(entity2.TypeId, Is.EqualTo(GetTypeId(session, typeof(Entity2))));

                    baseEntity.Remove();
                    entity1.Remove();
                    entity2.Remove();

                    tx.Complete();
                }
        }
コード例 #11
0
        public void TestThatStateStoreWritesTextWithDefaultAdapter()
        {
            var access1 = _interest.AfterCompleting <Entity2, Entity2>(1);

            _dispatcher.AfterCompleting(1);

            var entity = new Entity2("123", "5");

            _store.Write(entity.Id, entity, 1, _interest);

            Assert.Equal(0, access1.ReadFrom <int>("readObjectResultedIn"));
            Assert.Equal(1, access1.ReadFrom <int>("writeObjectResultedIn"));
            Assert.Equal(Result.Success, access1.ReadFrom <Result>("objectWriteResult"));
            Assert.Equal(entity, access1.ReadFrom <object>("objectState"));
        }
コード例 #12
0
        public void SomeMethod()
        {
            var entities = new List <Entity>();

            foreach (Entity item in entities)
            {
                var x = item;
            }

            Entity2 entity2 = null;

            foreach (Entity2 item in Enumerable.Empty <Entity2>())
            {
                var x = item;
            }
        }
コード例 #13
0
        public void RelationshipTypeTest()
        {
            IEntity entity1;
            IEntity entity2;
            Context context = new Context();

            context.Add <TestRelationship>(new Entity2(), new Entity3());
            context.Add <TestRelationship>(entity1 = new Entity1(), entity2 = new Entity2());
            var entities = context.Get <Entity1>();

            Assert.IsTrue(entities.Count() == 1, "Expected 1 matching entity.");
            var contextEntity = entities.Single();

            Assert.IsTrue(contextEntity.ConcreteEntity == entity1, "Entity instance does not match.");
            Assert.IsTrue(contextEntity.RelatedTo == entity2, "Entity instance does not match.");
            Assert.IsTrue(contextEntity.RelationshipType == typeof(TestRelationship), "Unexpected relationship type.");
        }
コード例 #14
0
        public void PopulateObjectPropertiesFromJson()
        {
            JObject jobject = new JObject
            {
                ["prop1"] = 1,
                ["prop2"] = "test"
            };

            var obj = new Entity2 {
                Prop1 = 34, Prop3 = "notchanging"
            };

            jobject.PopulateObjectFromJToken(obj);

            Assert.AreEqual(1, obj.Prop1);
            Assert.AreEqual("notchanging", obj.Prop3);
        }
コード例 #15
0
            public Initialize()
            {
                appointmentStatusHistory1 = new Entity2 {
                    Id = Guid.NewGuid()
                };
                center1 = new Entity8 {
                    Id = Guid.NewGuid()
                };
                insurance1 = new Entity12 {
                    Id = Guid.NewGuid()
                };
                patient1 = new Entity14 {
                    Id = Guid.NewGuid()
                };
                resource1 = new Entity17 {
                    Id = Guid.NewGuid()
                };
                service1 = new Entity20 {
                    Id = Guid.NewGuid()
                };
                speciality1 = new Entity22 {
                    Id = Guid.NewGuid()
                };

                speciality1.Entities20.Add(service1);

                service1.Entities8.Add(center1);
                service1.Entities12.Add(insurance1);
                service1.Entities17.Add(resource1);
                service1.Entity22   = speciality1;
                service1.Entity22Id = speciality1.Id;

                resource1.Entities8.Add(center1);
                resource1.Entities20.Add(service1);

                patient1.Entities12.Add(insurance1);

                insurance1.Entities14.Add(patient1);
                insurance1.Entities20.Add(service1);

                center1.Entities17.Add(resource1);
                center1.Entities20.Add(service1);
                center1.Entities22.Add(speciality1);
            }
コード例 #16
0
        private void btnProcessar_Click(object sender, EventArgs e)
        {
            string dadoDuplicado1 = "";
            string dadoDuplicado2 = "";

            for (int i = 0; i < lvDados.Items.Count; i++)
            {
                var dados = _baseRepository.GetData(lvDados.Items[i].Text);

                foreach (var item in dados)
                {
                    Entity1 entity1 = (Entity1)item;

                    if (entity1.Prop4 == dadoDuplicado1 && entity1.Prop5 == dadoDuplicado2)
                    {
                        // Pesquisa o dado relacionado
                        var dadosEnvolvidos = _baseRepository.GetDataEnvolved(entity1.Id);
                        foreach (var id in dadosEnvolvidos)
                        {
                            Entity2 entity2 = (Entity2)id;
                            // Exclui o registro da tabela
                            _baseRepository.Delete(Convert.ToInt32(entity2.Id), "NomeTabela", "ValorChaveEstrangeiraOuId");
                        }

                        // Exclui o registro da tabela
                        _baseRepository.Delete(entity1.Id, "NomeTabela", "ValorChaveEstrangeiraOuId");
                        // Exclui o registro da tabela
                        _baseRepository.Delete(entity1.Id, "NomeTabela", "ValorChaveEstrangeiraOuId");
                        // Exclui o registro da tabela
                        _baseRepository.Delete(entity1.Id, "NomeTabela", "ValorChaveEstrangeiraOuId");
                        // Exclui o registro da tabela
                        _baseRepository.Delete(entity1.Id, "NomeTabela", "ValorChaveEstrangeiraOuId");
                        // Exclui o registro da tabela
                        _baseRepository.Delete(entity1.Id, "NomeTabela", "ValorChaveEstrangeiraOuId");
                    }

                    dadoDuplicado1 = entity1.Prop4;
                    dadoDuplicado2 = entity1.Prop5;
                    // Altera a cor do texto para vermelho para sinalizar a exlusão do registro
                    lvDados.Items[i].ForeColor = Color.Red;
                }
            }
        }
コード例 #17
0
        public void Equal_Entity2()
        {
            var entity = new Entity2("12");

            entity.EId  = 12;
            entity.Name = "a";

            var entity2 = new Entity2("12");

            entity2.EId  = 12;
            entity2.Name = "a";
            Assert.True(entity2.Validator().Success);
            Assert.True(entity.Equals(entity2));

            var entity3 = new Entity2("12");

            entity3.EId  = 12;
            entity3.Name = "1a";

            Assert.False(entity.Equals(entity3));
        }
コード例 #18
0
        public void DeleteSelf()
        {
            if (Entity1 != null)
            {
                Entity1.RemoveReference(this);
            }

            if (Entity2 != null)
            {
                Entity2.RemoveReference(this);
            }

            Entity1 = null;
            Entity2 = null;

            if (EntitySet != null)
            {
                EntitySet.DeleteReference(this);
            }

            EntitySet = null;
        }
コード例 #19
0
        private void DeleteExecute()
        {
            try
            {
                using (Entity2 context = new Entity2())
                {
                    tblEmploye employeToDelete = (from x in context.tblEmployes where x.EmployeID == Employe.EmployeID select x).First();

                    List <int>        foreignKeysList = new List <int>();
                    List <tblManager> managersList    = context.tblManagers.ToList();

                    for (int i = 0; i < managersList.Count; i++)
                    {
                        foreignKeysList.Add(managersList[i].EmployeID.GetValueOrDefault());
                    }
                    MessageBoxResult mbr = MessageBox.Show("Are you sure you want to delete employe?", "Delete confirmation", MessageBoxButton.YesNo);

                    if (mbr == MessageBoxResult.Yes)
                    {
                        if (foreignKeysList.Contains(employeToDelete.EmployeID))
                        {
                            tblManager managerToDelete = (from x in context.tblManagers where x.EmployeID == Employe.EmployeID select x).First();
                            context.tblManagers.Remove(managerToDelete);
                        }
                        context.tblEmployes.Remove(employeToDelete);
                        context.SaveChanges();
                        MessageBox.Show("Employe is deleted");
                        ListEmploye = EmpList();
                        Employe     = new tblEmploye();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #20
0
        public async Task PublishValueAsync_ValueIUniqueKey()
        {
            ExecutionContext.Reset(false);
            var start = Cleaner.Clean(DateTime.Now);

            EventData <Entity2> ed = null;

            Event.RegisterReset();
            Event.Register((x) => { ed = (EventData <Entity2>)x[0]; return(Task.CompletedTask); });

            var v = new Entity2 {
                A = 123, B = "Abc"
            };

            await Event.PublishValueEventAsync(v, "domain.entity.123", "create").ConfigureAwait(false);

            Assert.IsNotNull(ed);
            Assert.AreEqual("domain.entity.123", ed.Subject);
            Assert.AreEqual("create", ed.Action);
            Assert.AreEqual(new object[] { 123, "Abc" }, ed.Key);
            Assert.IsTrue(ed.HasValue);
            Assert.IsTrue(ed.Timestamp >= start);
            Assert.AreEqual(v, ed.Value);
        }
コード例 #21
0
 /// <summary>
 /// Returns the hashcode of the BodyPair.
 /// The hashcode is the same if an BodyPair contains the same bodies.
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode()
 {
     return(Entity1.GetHashCode() + Entity2.GetHashCode());
 }
コード例 #22
0
ファイル: main.cs プロジェクト: staherianYMCA/test
        static void Main(string[] args)
        {
            try
            {
                XpoDefault.DataLayer = new SimpleDataLayer(new InMemoryDataStore());

                #if TEST_OWN_TABLE
                using (var unitOfWork = new UnitOfWork())
                {
                    #region Person

                    var dataPerson = new[]
                    {
                        new { Id = 1, Name = "Person" }
                    };

                    foreach (var rec in dataPerson)
                    {
                        var entity = InMemoryDataStoreHelper.CreateSimpleEntity(typeof(Person), rec, unitOfWork);

                        if (entity == null)
                        {
                            continue;
                        }

                        unitOfWork.Save(entity);
                    }

                    unitOfWork.CommitChanges();

                    InMemoryDataStoreHelper.ShowExistingData(typeof(Person), o => o is Person item ? $"{{Id:{item.Id}, Name:\"{item.Name}\"}}" : string.Empty);

                    #endregion

                    #region Employee

                    var dataEmployee = new[]
                    {
                        new { Id = 2, Name = "Employee" }
                    };

                    foreach (var rec in dataEmployee)
                    {
                        var entity = InMemoryDataStoreHelper.CreateSimpleEntity(typeof(Employee), rec, unitOfWork);

                        if (entity == null)
                        {
                            continue;
                        }

                        unitOfWork.Save(entity);
                    }

                    unitOfWork.CommitChanges();

                    InMemoryDataStoreHelper.ShowExistingData(typeof(Person), o => o is Person item ? $"{{Id:{item.Id}, Name:\"{item.Name}\"}}" : string.Empty);
                    InMemoryDataStoreHelper.ShowExistingData(typeof(Employee), o => o is Employee item ? $"{{Id:{item.Id}, Name:\"{item.Name}\", Salary:{item.Salary}}}" : string.Empty);

                    #endregion

                    #region Executive

                    var executive = new Executive(unitOfWork);
                    executive.Id     = 3;
                    executive.Name   = "Executive";
                    executive.Salary = 456;
                    executive.Bonus  = 789;

                    var person     = unitOfWork.GetObjectByKey <Person>(3);
                    var employee   = unitOfWork.GetObjectByKey <Employee>(3);
                    var executive2 = unitOfWork.GetObjectByKey <Executive>(3);

                    unitOfWork.Save(executive);
                    unitOfWork.CommitChanges();

                    #endregion
                }
                #endif

                #if TEST_MAPINHERITANCETYPE_PARENTTABLE
                using (var unitOfWork = new UnitOfWork())
                {
                    var entity1 = new Entity1(unitOfWork);
                    entity1.Id    = 1;
                    entity1.Value = "Entity1";
                    entity1.Entity3Derived1.AddRange(new[] { new Entity3Derived1(unitOfWork), new Entity3Derived1(unitOfWork) });
                    for (var i = 0; i < entity1.Entity3Derived1.Count; ++i)
                    {
                        ((Entity3Derived1)entity1.Entity3Derived1[i]).Value = $"Entity3Derived1 #{i + 1} (\"{entity1.Value}\")";
                    }

                    var entity2 = new Entity2(unitOfWork);
                    entity2.Id    = 2;
                    entity2.Value = "Entity2";
                    entity2.Entity3Derived2.AddRange(new[] { new Entity3Derived2(unitOfWork), new Entity3Derived2(unitOfWork) });
                    for (var i = 0; i < entity2.Entity3Derived2.Count; ++i)
                    {
                        ((Entity3Derived2)entity2.Entity3Derived2[i]).Value = $"Entity3Derived2 #{i + 1} (\"{entity2.Value}\")";
                    }

                    unitOfWork.CommitChanges();

                    foreach (var entity in new XPCollection <Entity3Base>(unitOfWork).OrderBy(item => item.Id))
                    {
                        var entity3Derived1 = entity as Entity3Derived1;
                        var entity3Derived2 = entity as Entity3Derived2;
                        var elementId       = entity3Derived1?.Element.Id ?? entity3Derived2?.Element.Id;
                        var elementValue    = entity3Derived1?.Element.Value ?? entity3Derived2?.Element.Value;
                        Debug.WriteLine($"Id:{entity.Id}, Value:{entity.Value}, Element.Id:{elementId?.ToString() ?? "NULL"}, Element.Value:{elementValue ?? "NULL"}");
                    }
                }
                #endif

                Session
                    session    = new Session(),
                    sessionII  = new Session(),
                    sessionIII = new Session();

                XPClassInfo
                    classInfoTestMaster = session.GetClassInfo(typeof(TestMaster)),
                    classInfoTestDetail = session.GetClassInfo(typeof(TestDetail));

                TestMaster
                    testMaster;

                testMaster     = new TestMaster(sessionII);
                testMaster.Val = "testMaster (sessionII)";
                sessionII.Save(testMaster);

                testMaster     = new TestMaster(sessionIII);
                testMaster.Val = "testMaster (sessionIII)";
                sessionIII.Save(testMaster);

                var criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (sessionII)"),
                                                  BinaryOperatorType.Equal);
                if ((testMaster = session.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (sessionIII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = session.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                UnitOfWork
                    uow    = new UnitOfWork(),
                    uowII  = new UnitOfWork(),
                    uowIII = new UnitOfWork();

                testMaster     = new TestMaster(uowII);
                testMaster.Val = "testMaster (uowII)";
                uowII.Save(testMaster);

                testMaster     = new TestMaster(uowIII);
                testMaster.Val = "testMaster (uowIII)";
                uowIII.Save(testMaster);

                var objToSave    = uow.GetObjectsToSave();      // Count = 0
                var objToSaveII  = uowII.GetObjectsToSave();    // Count = 1
                var objToSaveIII = uowIII.GetObjectsToSave();   // Count = 1

                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowIII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // nul
                }
                // https://documentation.devexpress.com/#CoreLibraries/CustomDocument2111
                var collection = new XPCollection <TestMaster>(uow);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(uowII);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(uowIII);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(PersistentCriteriaEvaluationBehavior.InTransaction, uow, null);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(PersistentCriteriaEvaluationBehavior.InTransaction, uowII, null);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(PersistentCriteriaEvaluationBehavior.InTransaction, uowIII, null);
                Console.WriteLine(collection.Count);

                uowII.CommitChanges();
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                uowIII.CommitChanges();
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val); //	oB!
                }
                objToSave    = uow.GetObjectsToSave();                                                        // Count = 0
                objToSaveII  = uowII.GetObjectsToSave();                                                      // Count = 0
                objToSaveIII = uowIII.GetObjectsToSave();                                                     // Count = 0

                uow.Dispose();
                uowII.Dispose();
                uowIII.Dispose();

                for (var i = 0; i < 3; ++i)
                {
                    testMaster     = new TestMaster(session);
                    testMaster.Val = i.ToString();

                    for (var j = 0; j < 3; ++j)
                    {
                        testMaster.Details.Add(new TestDetail(session));
                        testMaster.Details[j].Val = string.Format("{0}.{1}", i, j);
                    }

                    session.Save(testMaster);
                }

                if (
                    (testMaster =
                         session.FindObject <TestMaster>(new BinaryOperator(new OperandProperty("Name"), new OperandValue("1"),
                                                                            BinaryOperatorType.Equal))) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);

                    foreach (var detail in testMaster.Details)
                    {
                        Console.WriteLine("TestDetail: {{Id:{0}, Master.Id:{1}, Name:\"{2}\"}}", detail.Id, detail.Master.Id,
                                          detail.Val);
                    }
                }

                var resultOfSelectData = session.SelectData(
                    classInfoTestMaster,
                    new CriteriaOperatorCollection {
                    new OperandProperty("Id")
                },
                    CriteriaOperator.Or(
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("1"), BinaryOperatorType.Equal),
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("2"), BinaryOperatorType.Equal)
                        ),
                    false,
                    0,
                    null).ToArray();

                var resultOfGetObjects = session.GetObjects(
                    classInfoTestMaster,
                    CriteriaOperator.Or(
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("1"), BinaryOperatorType.Equal),
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("2"), BinaryOperatorType.Equal)
                        ),
                    null,
                    0,
                    false,
                    true).OfType <TestMaster>().ToArray();

                using (uow = new UnitOfWork())
                {
                    for (var i = 3; i < 6; ++i)
                    {
                        testMaster     = new TestMaster(uow);
                        testMaster.Val = i.ToString();

                        for (var j = 0; j < 3; ++j)
                        {
                            testMaster.Details.Add(new TestDetail(uow));
                            testMaster.Details[j].Val = string.Format("{0}.{1}", i, j);
                        }

                        uow.CommitChanges();
                    }
                }

                resultOfSelectData = session.SelectData(
                    classInfoTestMaster,
                    new CriteriaOperatorCollection {
                    new OperandProperty("Id")
                },
                    CriteriaOperator.Or(
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("4"), BinaryOperatorType.Equal),
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("5"), BinaryOperatorType.Equal)
                        ),
                    false,
                    0,
                    null).ToArray();

                var res = (from _testMaster_ in new XPQuery <TestMaster>(session)
                           join _testDetail_ in new XPQuery <TestDetail>(session) on _testMaster_.Id equals _testDetail_.Master.Id
                           where
                           _testDetail_.Val == "1.1" /*&& _testDetail_.PhysicalPerson.id == processedUser.id*/ &&
                           _testDetail_.Master.Id == 6
                           select new
                {
                    TestMasterId = _testMaster_.Id,
                    TestDetailId = _testDetail_.Id
                }).ToList();
            }
            catch (Exception eException)
            {
                Console.WriteLine(eException.GetType().FullName + Environment.NewLine + "Message: " + eException.Message + Environment.NewLine + (eException.InnerException != null && !string.IsNullOrEmpty(eException.InnerException.Message) ? "InnerException.Message" + eException.InnerException.Message + Environment.NewLine : string.Empty) + "StackTrace:" + Environment.NewLine + eException.StackTrace);
            }
        }
コード例 #23
0
    public async Task Run()
    {
        GraphTypeTypeRegistry.Register <Entity1, Entity1Graph>();
        GraphTypeTypeRegistry.Register <Entity2, Entity2Graph>();

        var sqlInstance1 = new SqlInstance <DbContext1>(
            constructInstance: builder => new DbContext1(builder.Options));

        var sqlInstance2 = new SqlInstance <DbContext2>(
            constructInstance: builder => new DbContext2(builder.Options));

        var query = @"
{
  entity1
  {
    property
  },
  entity2
  {
    property
  }
}";

        var entity1 = new Entity1
        {
            Property = "the entity1"
        };
        var entity2 = new Entity2
        {
            Property = "the entity2"
        };

        var services = new ServiceCollection();

        services.AddSingleton <MultiContextQuery>();
        services.AddSingleton <Entity1Graph>();
        services.AddSingleton <Entity2Graph>();

        await using (var database1 = await sqlInstance1.Build())
            await using (var database2 = await sqlInstance2.Build())
            {
                await database1.AddDataUntracked(entity1);

                await database2.AddDataUntracked(entity2);

                var dbContext1 = database1.NewDbContext();
                var dbContext2 = database2.NewDbContext();
                services.AddSingleton(dbContext1);
                services.AddSingleton(dbContext2);

                #region RegisterMultipleInContainer

                EfGraphQLConventions.RegisterInContainer(
                    services,
                    userContext => ((UserContext)userContext).DbContext1);
                EfGraphQLConventions.RegisterInContainer(
                    services,
                    userContext => ((UserContext)userContext).DbContext2);

                #endregion

                await using var provider = services.BuildServiceProvider();
                using var schema         = new MultiContextSchema(new FuncDependencyResolver(provider.GetRequiredService !));
                var documentExecuter = new EfDocumentExecuter();

                #region MultiExecutionOptions

                var executionOptions = new ExecutionOptions
                {
                    Schema      = schema,
                    Query       = query,
                    UserContext = new UserContext(dbContext1, dbContext2)
                };

                #endregion

                var result = await documentExecuter.ExecuteWithErrorCheck(executionOptions);

                await Verifier.Verify(result.Data);
            }
    }
コード例 #24
0
 /// <summary>
 /// There are no comments for Entity2Set in the schema.
 /// </summary>
 public void AddToEntity2Set(Entity2 entity2)
 {
     base.AddObject("Entity2Set", entity2);
 }
コード例 #25
0
        public SiteDispute(List <Property> properties, World world) : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "dispute":
                    switch (property.Value)
                    {
                    case "fishing rights":
                        Dispute = Dispute.FishingRights;
                        break;

                    case "grazing rights":
                        Dispute = Dispute.GrazingRights;
                        break;

                    case "livestock ownership":
                        Dispute = Dispute.LivestockOwnership;
                        break;

                    case "territory":
                        Dispute = Dispute.Territory;
                        break;

                    case "water rights":
                        Dispute = Dispute.WaterRights;
                        break;

                    case "rights-of-way":
                        Dispute = Dispute.RightsOfWay;
                        break;

                    default:
                        Dispute         = Dispute.Unknown;
                        _unknownDispute = property.Value;
                        world.ParsingErrors.Report("Unknown Site Dispute: " + _unknownDispute);
                        break;
                    }
                    break;

                case "entity_id_1":
                    Entity1 = world.GetEntity(Convert.ToInt32(property.Value));
                    break;

                case "entity_id_2":
                    Entity2 = world.GetEntity(Convert.ToInt32(property.Value));
                    break;

                case "site_id_1":
                    Site1 = world.GetSite(Convert.ToInt32(property.Value));
                    break;

                case "site_id_2":
                    Site2 = world.GetSite(Convert.ToInt32(property.Value));
                    break;
                }
            }

            Entity1.AddEvent(this);
            Entity2.AddEvent(this);
            Site1.AddEvent(this);
            Site2.AddEvent(this);
        }
コード例 #26
0
 /// <summary>
 /// There are no comments for Entity2Set in the schema.
 /// </summary>
 public void AddToEntity2Set(Entity2 entity2)
 {
     base.AddObject("Entity2Set", entity2);
 }
コード例 #27
0
ファイル: Program.cs プロジェクト: ArturBerk/Automa.ECB
        static void Main(string[] args)
        {
            var Entities = new EntityManager();

            var type1 = EntityType.FromComponentTypes(
                ComponentType.Create <Component1>(),
                ComponentType.Create <Component2>());
            var type2 = EntityType.FromComponentTypes(
                ComponentType.Create <Component1>(),
                ComponentType.Create <Component2>(),
                ComponentType.Create <Component3>());
            var type3 = EntityType.FromComponentTypes(
                ComponentType.Create <Component1>(),
                ComponentType.Create <Component2>(),
                ComponentType.Create <Component4>());
            var type4 = EntityType.FromComponentTypes(
                ComponentType.Create <Component1>(),
                ComponentType.Create <Component2>(),
                ComponentType.Create <Component3>(),
                ComponentType.Create <Component4>());
            var entities = new Entity[20000];

            for (int i = 0; i < 5000; i++)
            {
                var e = Entities.CreateEntity(type1);
                e.SetComponent(new Component1());
                e.SetComponent(new Component2());
                entities[i] = e;
            }
            for (int i = 0; i < 5000; i++)
            {
                var e = Entities.CreateEntity(type2);
                e.SetComponent(new Component1());
                e.SetComponent(new Component2());
                entities[i + 5000] = e;
            }
            for (int i = 0; i < 5000; i++)
            {
                var e = Entities.CreateEntity(type3);
                e.SetComponent(new Component1());
                e.SetComponent(new Component2());
                entities[i + 10000] = e;
            }
            for (int i = 0; i < 5000; i++)
            {
                var e = Entities.CreateEntity(type4);
                e.SetComponent(new Component1());
                e.SetComponent(new Component2());
                entities[i + 15000] = e;
            }

            var entity2 = new Entity2();
            var group   = new Group1();

            Entities.BindEnumerator(entity2);
            Entities.BindGroup(group);

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Restart();
            for (int i = 0; i < 10; i++)
            {
                while (entity2.MoveNext())
                {
                    ref var c1 = ref entity2.Component1.Value;
                    ref var c2 = ref entity2.Component2.Value;
                    ref var c3 = ref entity2.Component1.Value;
コード例 #28
0
    public async Task Run()
    {
        GraphTypeTypeRegistry.Register <Entity1, Entity1Graph>();
        GraphTypeTypeRegistry.Register <Entity2, Entity2Graph>();

        var sqlInstance1 = new SqlInstance <DbContext1>(
            constructInstance: builder => new DbContext1(builder.Options));

        var sqlInstance2 = new SqlInstance <DbContext2>(
            constructInstance: builder => new DbContext2(builder.Options));

        var query = @"
{
  entity1
  {
    property
  },
  entity2
  {
    property
  }
}";

        var entity1 = new Entity1
        {
            Property = "the entity1"
        };
        var entity2 = new Entity2
        {
            Property = "the entity2"
        };

        var sqlDatabase1 = await sqlInstance1.Build();

        var sqlDatabase2 = await sqlInstance2.Build();

        await using (var dbContext = sqlDatabase1.NewDbContext())
        {
            dbContext.AddRange(entity1);
            await dbContext.SaveChangesAsync();
        }

        await using (var dbContext = sqlDatabase2.NewDbContext())
        {
            dbContext.AddRange(entity2);
            await dbContext.SaveChangesAsync();
        }

        await using var dbContext1 = sqlDatabase1.NewDbContext();
        await using var dbContext2 = sqlDatabase2.NewDbContext();
        var services = new ServiceCollection();

        services.AddSingleton <MultiContextQuery>();
        services.AddSingleton <Entity1Graph>();
        services.AddSingleton <Entity2Graph>();
        services.AddSingleton(dbContext1);
        services.AddSingleton(dbContext2);

        #region RegisterMultipleInContainer
        EfGraphQLConventions.RegisterInContainer(
            services,
            userContext => (DbContext1)((Dictionary <string, object>)userContext)["dbContext1"]);
        EfGraphQLConventions.RegisterInContainer(
            services,
            userContext => (DbContext2)((Dictionary <string, object>)userContext)["dbContext2"]);
        #endregion

        await using var provider = services.BuildServiceProvider();
        using var schema         = new MultiContextSchema(provider);
        var documentExecuter = new EfDocumentExecuter();
        #region MultiExecutionOptions
        var executionOptions = new ExecutionOptions
        {
            Schema = schema,
            Query  = query,
        };
        executionOptions.UserContext.Add("dbContext1", dbContext1);
        executionOptions.UserContext.Add("dbContext2", dbContext2);
        #endregion

        var executionResult = await documentExecuter.ExecuteWithErrorCheck(executionOptions);
        await Verify(executionResult.Data);
    }
コード例 #29
0
    public async Task Run()
    {
        GraphTypeTypeRegistry.Register <Entity1, Entity1Graph>();
        GraphTypeTypeRegistry.Register <Entity2, Entity2Graph>();

        var sqlInstance1 = new SqlInstance <DbContext1>(
            constructInstance: builder => new DbContext1(builder.Options));

        var sqlInstance2 = new SqlInstance <DbContext2>(
            constructInstance: builder => new DbContext2(builder.Options));

        var query = @"
{
  entity1
  {
    property
  },
  entity2
  {
    property
  }
}";

        var entity1 = new Entity1
        {
            Property = "the entity1"
        };
        var entity2 = new Entity2
        {
            Property = "the entity2"
        };

        var sqlDatabase1 = await sqlInstance1.Build();

        var sqlDatabase2 = await sqlInstance2.Build();

        using (var dbContext = sqlDatabase1.NewDbContext())
        {
            dbContext.AddRange(entity1);
            await dbContext.SaveChangesAsync();
        }

        using (var dbContext = sqlDatabase2.NewDbContext())
        {
            dbContext.AddRange(entity2);
            await dbContext.SaveChangesAsync();
        }

        using (var dbContext1 = sqlDatabase1.NewDbContext())
            using (var dbContext2 = sqlDatabase2.NewDbContext())
            {
                var services = new ServiceCollection();

                services.AddSingleton <MultiContextQuery>();
                services.AddSingleton(typeof(Entity1Graph));
                services.AddSingleton(typeof(Entity2Graph));

                #region RegisterMultipleInContainer
                EfGraphQLConventions.RegisterInContainer(
                    services,
                    dbContext1,
                    userContext => ((UserContext)userContext).DbContext1);
                EfGraphQLConventions.RegisterInContainer(
                    services,
                    dbContext2,
                    userContext => ((UserContext)userContext).DbContext2);
                #endregion

                using (var provider = services.BuildServiceProvider())
                    using (var schema = new MultiContextSchema(new FuncDependencyResolver(provider.GetRequiredService)))
                    {
                        var documentExecuter = new EfDocumentExecuter();
                        #region MultiExecutionOptions
                        var executionOptions = new ExecutionOptions
                        {
                            Schema      = schema,
                            Query       = query,
                            UserContext = new UserContext
                            {
                                DbContext1 = dbContext1,
                                DbContext2 = dbContext2
                            }
                        };
                        #endregion

                        var executionResult = await documentExecuter.ExecuteWithErrorCheck(executionOptions);

                        ObjectApprover.VerifyWithJson(executionResult.Data);
                    }
            }
    }
コード例 #30
0
 public Entity2ViewModel(Entity2 entity)
 {
     this.Id   = entity.Id;
     this.name = entity.Property1;
     this.zoom = entity.Property2;
 }
コード例 #31
0
        static void Main(string[] args)
        {
            MCSContainer db = new MCSContainer();
            //Ниже укажите путь , полный при чем
            StreamReader r    = new StreamReader(@"C:\Users\user\Documents\Visual Studio 2017\Projects\ADO.NET_EntityFramework_01_HW\ModeFirstApp\TxtFile\AboutEgor.txt", Encoding.Default);
            string       text = r.ReadToEnd();

            Console.WriteLine("Подождите минуту. Выполняется важная операция...");
            int k = 0;

start:

            try
            {
                List <Entity1> ls  = new List <Entity1>();
                List <Entity2> ls2 = new List <Entity2>();
                List <Entity3> ls3 = new List <Entity3>();
                for (int i = 0; i < 2000; i++)
                {
                    Entity1 s = new Entity1();
                    s.Name = "You Know Who is The Best_(" + i + ")_using_Entity1_table";
                    s.Desc = text;

                    Entity3 s3 = new Entity3();
                    s3.Name = "You Know Who is The Best_(" + i + ")_using_Entity3_table";
                    s3.Desc = text;
                    Entity2 s2 = new Entity2();
                    s2.Name = "You Know Who is The Best_(" + i + ")_using_Entity2_table";
                    s2.Desc = text;
                    ls2.Add(s2);
                    ls.Add(s);
                    ls3.Add(s3);
                }


                foreach (Entity1 e in ls)
                {
                    db.Entity1Set.Add(e);
                    db.SaveChanges();
                }

                foreach (Entity2 e in ls2)
                {
                    db.Entity2Set.Add(e);
                    db.SaveChanges();
                }
                foreach (Entity3 e in ls3)
                {
                    db.Entity3Set.Add(e);
                    db.SaveChanges();
                }
                k++;

                Console.WriteLine("База заполнена данными отлично!");
            }
            catch (Exception ex)
            {
                if (k == 5)
                {
                    Console.WriteLine("База заполнена данными отлично!");
                }
                else
                {
                    k++;
                    goto start;
                }
            }
        }
コード例 #32
0
 /// <summary>
 /// Create a new Entity2 object.
 /// </summary>
 /// <param name="id">Initial value of Id.</param>
 public static Entity2 CreateEntity2(int id)
 {
     Entity2 entity2 = new Entity2();
     entity2.Id = id;
     return entity2;
 }