コード例 #1
0
        void GetLob(String slob)
        {
            if (!_lobs.ContainsKey(slob))
            {
                NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
                LobSystemInstance l = sysInstances[slob];

                IEnumerator it = _cfg.lobCollection.GetEnumerator();
                while (it.MoveNext())
                {
                    Lob lob = (Lob)it.Current;
                    if (lob.name.Equals(slob))
                    {
                        _lobInsts.Add(slob, l); //the real lob
                        _lobs.Add(slob, lob);   //the config of lob
                        break;
                    }
                }
            }
            _lobInst = (LobSystemInstance)_lobInsts[slob];
            _lob     = (Lob)_lobs[slob];
            if (_lobInst == null)
            {
                throw new Exception(slob + " does not exist in this service provider, check the name to make sure it's correct.");
            }
            if (_lob == null)
            {
                throw new Exception(slob + " is not found in bdc.xml");
            }
            return;
        }
        public void ProductsCanBeFound()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse("ContosoSSP");
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance     lobSystemInstance       = sysInstances["ContosoProductCatalogService"];
            NamedEntityDictionary entities = lobSystemInstance.GetEntities();
            Entity productEntity           = entities["Product"];

            IEntityInstance productInstance = productEntity.FindSpecific("1000000000", lobSystemInstance);

            Assert.AreEqual("Blood Pressure Kit", productInstance["Name"]);
            Assert.AreEqual("Blood pressure kit includes cuff with velcro adhesive and easy to read glow in the dark dial.", productInstance["LongDescription"]);
            Assert.AreEqual("Blood pressure kit includes cuff and easy to read dial.", productInstance["ShortDescription"]);
            Assert.AreEqual("1000000000", productInstance["Sku"]);
            Assert.AreEqual("8", productInstance["CategoryId"]);
            Assert.IsTrue(productInstance["ImagePath"].ToString().EndsWith("images/bloodpressure.jpg"));
            Assert.IsTrue(productInstance["ThumbnailImagePath"].ToString().EndsWith("images/bloodpressure.jpg"));

            productInstance = productEntity.FindSpecific("2000000000", lobSystemInstance);

            Assert.AreEqual("Gurney", productInstance["Name"]);
            Assert.AreEqual("Gurney includes rubber wheels and extra padding. Meets most federal safety requirements.", productInstance["LongDescription"]);
            Assert.AreEqual("Gurney includes rubber wheels and extra padding.", productInstance["ShortDescription"]);
            Assert.AreEqual("2000000000", productInstance["Sku"]);
            Assert.AreEqual("10", productInstance["CategoryId"]);
            Assert.IsTrue(productInstance["ImagePath"].ToString().EndsWith("images/gurney.jpg"));
            Assert.IsTrue(productInstance["ThumbnailImagePath"].ToString().EndsWith("images/gurney.jpg"));
        }
        public void ContosoProductCatalogServiceIsRegistered()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse("ContosoSSP");

            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();

            Assert.AreEqual(1, sysInstances.Count);
            Assert.IsNotNull(sysInstances["ContosoProductCatalogService"]);
        }
コード例 #4
0
        private static void IterateLOBSystems()
        {
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();

            Console.WriteLine("Listing system instances...");
            foreach (String name in sysInstances.Keys)
            {
                Console.WriteLine(name);
            }

            NamedLobSystemDictionary lobSystems = ApplicationRegistry.GetLobSystems();

            foreach (LobSystem lobSystem in lobSystems.Values)
            {
                Console.WriteLine("Application: " + lobSystem.Name);
                NamedDataClassDictionary lobClasses = lobSystem.GetDataClasses();
                foreach (DataClass dataClass in lobClasses.Values)
                {
                    Console.WriteLine(" Entities: " + dataClass.Name);
                }


                if (lobSystem.Name == "AdventureWorksSample")
                {
                    // work on a specific class
                    DataClass             customers = lobClasses["Customer"];
                    NamedMethodDictionary methods   = customers.GetMethods();
                    foreach (Method meth in methods.Values)
                    {
                        Console.WriteLine(" Method: " + meth.Name);
                    }
                }

                if (lobSystem.Name == "AdventureWorksLOBSystem")
                {
                    // filter all femalce Employees

                    Entity employees = lobSystem.GetEntities()["HumanResources.Employee"];

                    FilterCollection filtered = employees.GetFinderFilters();
                    (filtered[0] as ComparisonFilter).Value = 10;

                    IEntityInstanceEnumerator empEnum = employees.FindFiltered(filtered,
                                                                               ApplicationRegistry.GetLobSystemInstances
                                                                                   ()["AdventureWorksInstance"]);

                    while (empEnum.MoveNext())
                    {
                        DataTable dt = (empEnum.Current as DbEntityInstance).EntityAsDataTable;
                        PrintDataRow(dt.Rows[0]);
                    }
                }
            }
        }
        public void ContosoProductCatalogServiceHasCatalogAndProductEntities()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse("ContosoSSP");
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance lobSystemInstance           = sysInstances["ContosoProductCatalogService"];

            NamedEntityDictionary entities = lobSystemInstance.GetEntities();

            Assert.AreEqual(3, entities.Count);
            Assert.IsNotNull(entities["Category"]);
            Assert.IsNotNull(entities["Product"]);
            Assert.IsNotNull(entities["Part"]);
        }
        public void CategoryCanBeFound()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse("ContosoSSP");
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
            LobSystemInstance     lobSystemInstance       = sysInstances["ContosoProductCatalogService"];
            NamedEntityDictionary entities = lobSystemInstance.GetEntities();
            Entity categoryEntity          = entities["Category"];

            IEntityInstance categoryInstance = categoryEntity.FindSpecific("0", lobSystemInstance);

            Assert.AreEqual("Root Category", categoryInstance["Name"]);
            Assert.AreEqual("0", categoryInstance["CategoryId"]);
            Assert.AreEqual(string.Empty, categoryInstance["ParentId"]);

            categoryInstance = categoryEntity.FindSpecific("1", lobSystemInstance);

            Assert.AreEqual("Medical Supplies", categoryInstance["Name"]);
            Assert.AreEqual("1", categoryInstance["CategoryId"]);
            Assert.AreEqual("0", categoryInstance["ParentId"]);
        }