Ejemplo n.º 1
0
 private void Initialize()
 {
     if (!_odb.IndexManagerFor <Recipe>().ExistIndex("nameIndex"))
     {
         _odb.IndexManagerFor <Recipe>().AddUniqueIndexOn("nameIndex", new[] { "Name" });
     }
 }
Ejemplo n.º 2
0
        public void CopyRegions(IOdb odb, NorthwindDataSet dataSet)
        {
            //Processing Regions
            LogMessage("Reading Regions...", false);
            var adapter1 = new RegionTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Regions: " + row.RegionID.ToString() + " ...", false);

                var r = new Region {RegionID = row.RegionID, RegionDescription = row.RegionDescription};

                odb.Store(r);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Region>().AddUniqueIndexOn("Region_RegionID_PK_index", Domain.Region.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Region>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Regions" + Environment.NewLine, true);
        }
        private void CopySuppliers(IOdb odb)
        {
            //Processing Suppliers
            LogMessage("Reading Suppliers...", false);
            var adapter1 = new SuppliersTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Supplier: " + row.SupplierID.ToString() + " ...", false);

                var s = new Supplier
                {
                    SupplierID   = row.SupplierID,
                    CompanyName  = row.CompanyName,
                    ContactName  = row.IsContactNameNull() ? null : row.ContactName,
                    ContactTitle = row.IsContactTitleNull() ? null : row.ContactTitle,
                    Address      = row.IsAddressNull() ? null : row.Address,
                    City         = row.IsCityNull() ? null : row.City,
                    Region       = row.IsRegionNull() ? null : row.Region,
                    PostalCode   = row.IsPostalCodeNull() ? null : row.PostalCode,
                    Country      = row.IsCountryNull() ? null : row.Country,
                    Phone        = row.IsPhoneNull() ? null : row.Phone,
                    Fax          = row.IsFaxNull() ? null : row.Fax,
                    HomePage     = row.IsHomePageNull() ? null : row.HomePage
                };

                odb.Store(s);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Supplier>().AddUniqueIndexOn("Supplier_SupplierID_PK_index", Supplier.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Supplier>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Suppliers" + Environment.NewLine, true);
        }
        public virtual void Test1000Objects()
        {
            var  OdbFileName = "index2.test1.odb";
            IOdb odb         = null;
            var  size        = 1000;
            var  start       = OdbTime.GetCurrentTimeInMs();

            try
            {
                DeleteBase(OdbFileName);
                odb = Open(OdbFileName);
                for (var i = 0; i < size; i++)
                {
                    var io = new IndexedObject("name" + i, i, new DateTime());
                    odb.Store(io);
                }
                odb.Close();
                Println("\n\n END OF INSERT \n\n");
                odb = Open(OdbFileName);
                var names = new[] { "name" };
                odb.IndexManagerFor <IndexedObject>().AddUniqueIndexOn("index1", names);
                Println("\n\n after create index\n\n");
                var query = odb.Query <IndexedObject>();
                query.Descend("name").Constrain((object)"name0").Equal();
                var objects =
                    query.Execute <IndexedObject>(true);

                Println("\n\nafter get Objects\n\n");
                AssertEquals(1, objects.Count);
                var query2 = odb.Query <IndexedObject>();
                query2.Descend("duration").Constrain((object)9).Equal();

                objects = query2.Execute <IndexedObject>(true);

                AssertEquals(1, objects.Count);
                objects = odb.Query <IndexedObject>().Execute <IndexedObject>(true);
                AssertEquals(size, objects.Count);
            }
            finally
            {
                var end = OdbTime.GetCurrentTimeInMs();
                Println((end - start) + "ms");

                odb.Close();
            }
        }
        private void CopyCategories(IOdb odb)
        {
            //Processing Categories
            LogMessage("Reading Categories...", false);
            var adapter1 = new CategoriesTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Categories: " + row.CategoryID.ToString() + " ...", false);

                var c = new Category
                {
                    CategoryID   = row.CategoryID,
                    CategoryName = row.CategoryName,
                    Description  = row.IsDescriptionNull() ? null : row.Description,
                    Picture      = row.IsPictureNull() ? null : row.Picture
                };

                odb.Store(c);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Category>().AddUniqueIndexOn("Category_CategoryID_PK_index", Category.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Category>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Categories" + Environment.NewLine, true);
        }
        private void CopyTerritories(IOdb odb)
        {
            //Processing Territories
            LogMessage("Reading Territories...", false);
            var adapter1 = new TerritoriesTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Territories: " + row.TerritoryID + " ...", false);

                var t = new Territory {
                    TerritoryID = row.TerritoryID, TerritoryDescription = row.TerritoryDescription
                };

                LogMessage("linking member...", false);
                t.Region = NDbUtil.GetByNumericalID <Region>(odb, Domain.Region.PK, row.RegionID);

                odb.Store(t);
                LogMessage("saved (" + t.TerritoryID + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Territory>().AddUniqueIndexOn("Territory_TerritoryID_PK_index", Territory.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Territory>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Territories" + Environment.NewLine, true);
        }
        private void CopyCustomerDemographics(IOdb odb)
        {
            //Processing CustomerDemographics
            LogMessage("Reading CustomerDemographics...", false);
            var adapter1 = new CustomerDemographicsTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("CustomerDemographics: " + row.CustomerTypeID + " ...", false);

                var cd = new CustomerDemographics
                {
                    CustomerTypeID = row.CustomerTypeID,
                    CustomerDesc   = row.IsCustomerDescNull() ? null : row.CustomerDesc
                };

                odb.Store(cd);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <CustomerDemographics>().AddUniqueIndexOn(
                "CustomerDemographics_CustomerTypeID_PK_index", CustomerDemographics.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <CustomerDemographics>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with CustomerDemographics" + Environment.NewLine, true);
        }
        private void CopyShippers(IOdb odb)
        {
            //Processing Shippers
            LogMessage("Reading Shippers...", false);
            var adapter1 = new ShippersTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Shippers: " + row.ShipperID.ToString() + " ...", false);

                var s = new Shipper
                {
                    ShipperID   = row.ShipperID,
                    CompanyName = row.CompanyName,
                    Phone       = row.IsPhoneNull() ? null : row.Phone
                };

                odb.Store(s);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Shipper>().AddUniqueIndexOn("Shipper_ShipperID_PK_index", Shipper.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Shipper>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Shippers" + Environment.NewLine, true);
        }
        public void CopyRegions(IOdb odb, NorthwindDataSet dataSet)
        {
            //Processing Regions
            LogMessage("Reading Regions...", false);
            var adapter1 = new RegionTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Regions: " + row.RegionID.ToString() + " ...", false);

                var r = new Region {
                    RegionID = row.RegionID, RegionDescription = row.RegionDescription
                };

                odb.Store(r);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Region>().AddUniqueIndexOn("Region_RegionID_PK_index", Domain.Region.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Region>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Regions" + Environment.NewLine, true);
        }
Ejemplo n.º 10
0
        public virtual void Test3_BadAttributeInIndex()
        {
            var  baseName  = GetBaseName();
            IOdb odb       = null;
            var  fieldName = "fkjdsfkjdhfjkdhjkdsh";

            try
            {
                odb = Open(baseName);
                var fields = new[] { fieldName };
                odb.IndexManagerFor <IndexedObject2>().AddUniqueIndexOn("index1", fields);
                Fail("Should have thrown an exception because the field " + fieldName + " does not exist");
            }
            catch (Exception)
            {
            }
            finally
            {
                // normal
                odb.Close();
                DeleteBase(baseName);
            }
        }
Ejemplo n.º 11
0
        private void CopyEmployees(IOdb odb)
        {
            var employees = new List<Employee>();
            var reportingEmployees = new Hashtable();
            //Processing Employees
            LogMessage("Reading Employees...", false);
            var adapter1 = new EmployeesTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                var e = new Employee
                            {
                                EmployeeID = row.EmployeeID,
                                FirstName = row.FirstName,
                                LastName = row.LastName,
                                Title = row.IsTitleNull() ? null : row.Title,
                                TitleOfCourtesy = row.IsTitleOfCourtesyNull() ? null : row.TitleOfCourtesy,
                                Address = row.IsAddressNull() ? null : row.Address,
                                City = row.IsCityNull() ? null : row.City,
                                Region = row.IsRegionNull() ? null : row.Region,
                                PostalCode = row.IsPostalCodeNull() ? null : row.PostalCode,
                                Country = row.IsCountryNull() ? null : row.Country,
                                HomePhone = row.IsHomePhoneNull() ? null : row.HomePhone,
                                Extension = row.IsExtensionNull() ? null : row.Extension,
                                Notes = row.IsNotesNull() ? null : row.Notes,
                                Photo = row.IsPhotoNull() ? null : row.Photo,
                                PhotoPath = row.IsPhotoPathNull() ? null : row.PhotoPath
                            };

                if (!row.IsBirthDateNull())
                    e.BirthDate = row.BirthDate;
                if (!row.IsHireDateNull())
                    e.HireDate = row.HireDate;
                if (!row.IsReportsToNull())
                    reportingEmployees.Add(e.EmployeeID, row.ReportsTo);

                employees.Add(e);
            }
            foreach (var e in employees)
            {
                LogMessage("Employee: " + e.EmployeeID.ToString() + " ...", false);
                if (reportingEmployees.ContainsKey(e.EmployeeID))
                {
                    LogMessage("linking member...", false);
                    var reportsToID = Convert.ToInt64(reportingEmployees[e.EmployeeID]);
                    var found = employees.Find(p => p.EmployeeID == reportsToID);
                    e.ReportsTo = found;
                }
                odb.Store(e);
                LogMessage("saved (" + e.EmployeeID.ToString() + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Employee>().AddUniqueIndexOn("Employee_EmployeeID_PK_index", Employee.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Employee>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Employees" + Environment.NewLine, true);
        }
Ejemplo n.º 12
0
        private void CopyProducts(IOdb odb)
        {
            var products   = new List <Product>();
            var suppliers  = new Hashtable();
            var categories = new Hashtable();

            //Processing Products
            LogMessage("Reading Products...", false);
            var adapter1 = new ProductsTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                var p = new Product
                {
                    ProductID       = row.ProductID,
                    ProductName     = row.ProductName,
                    QuantityPerUnit = row.IsQuantityPerUnitNull() ? null : row.QuantityPerUnit,
                    UnitPrice       = row.IsUnitPriceNull() ? 0 : Convert.ToDouble(row.UnitPrice),
                    UnitsInStock    = row.IsUnitsInStockNull() ? 0 : row.UnitsInStock,
                    UnitsOnOrder    = row.IsUnitsOnOrderNull() ? 0 : row.UnitsOnOrder,
                    ReorderLevel    = row.IsReorderLevelNull() ? 0 : row.ReorderLevel,
                    Discontinued    = row.Discontinued
                };

                if (!row.IsSupplierIDNull())
                {
                    suppliers.Add(p.ProductID, row.SupplierID);
                }
                if (!row.IsCategoryIDNull())
                {
                    categories.Add(p.ProductID, row.CategoryID);
                }

                products.Add(p);
            }
            foreach (var p in products)
            {
                LogMessage("Product: " + p.ProductID.ToString() + " ...", false);
                if (suppliers.ContainsKey(p.ProductID))
                {
                    LogMessage("linking member...", false);
                    var supplierID = Convert.ToInt64(suppliers[p.ProductID]);
                    var found      = NDbUtil.GetByNumericalID <Supplier>(odb, Supplier.PK, supplierID);
                    p.Supplier = found;
                }
                if (categories.ContainsKey(p.ProductID))
                {
                    LogMessage("linking member...", false);
                    var categoryID = Convert.ToInt64(categories[p.ProductID]);
                    var found      = NDbUtil.GetByNumericalID <Category>(odb, Category.PK, categoryID);
                    p.Category = found;
                }
                odb.Store(p);

                LogMessage("saved (" + p.ProductID.ToString() + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Product>().AddUniqueIndexOn("Product_ProductID_PK_index", Product.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Product>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Products" + Environment.NewLine, true);
        }
Ejemplo n.º 13
0
        private void CopyEmployees(IOdb odb)
        {
            var employees          = new List <Employee>();
            var reportingEmployees = new Hashtable();

            //Processing Employees
            LogMessage("Reading Employees...", false);
            var adapter1 = new EmployeesTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                var e = new Employee
                {
                    EmployeeID      = row.EmployeeID,
                    FirstName       = row.FirstName,
                    LastName        = row.LastName,
                    Title           = row.IsTitleNull() ? null : row.Title,
                    TitleOfCourtesy = row.IsTitleOfCourtesyNull() ? null : row.TitleOfCourtesy,
                    Address         = row.IsAddressNull() ? null : row.Address,
                    City            = row.IsCityNull() ? null : row.City,
                    Region          = row.IsRegionNull() ? null : row.Region,
                    PostalCode      = row.IsPostalCodeNull() ? null : row.PostalCode,
                    Country         = row.IsCountryNull() ? null : row.Country,
                    HomePhone       = row.IsHomePhoneNull() ? null : row.HomePhone,
                    Extension       = row.IsExtensionNull() ? null : row.Extension,
                    Notes           = row.IsNotesNull() ? null : row.Notes,
                    Photo           = row.IsPhotoNull() ? null : row.Photo,
                    PhotoPath       = row.IsPhotoPathNull() ? null : row.PhotoPath
                };

                if (!row.IsBirthDateNull())
                {
                    e.BirthDate = row.BirthDate;
                }
                if (!row.IsHireDateNull())
                {
                    e.HireDate = row.HireDate;
                }
                if (!row.IsReportsToNull())
                {
                    reportingEmployees.Add(e.EmployeeID, row.ReportsTo);
                }

                employees.Add(e);
            }
            foreach (var e in employees)
            {
                LogMessage("Employee: " + e.EmployeeID.ToString() + " ...", false);
                if (reportingEmployees.ContainsKey(e.EmployeeID))
                {
                    LogMessage("linking member...", false);
                    var reportsToID = Convert.ToInt64(reportingEmployees[e.EmployeeID]);
                    var found       = employees.Find(p => p.EmployeeID == reportsToID);
                    e.ReportsTo = found;
                }
                odb.Store(e);
                LogMessage("saved (" + e.EmployeeID.ToString() + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Employee>().AddUniqueIndexOn("Employee_EmployeeID_PK_index", Employee.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Employee>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Employees" + Environment.NewLine, true);
        }
Ejemplo n.º 14
0
        private void CopyTerritories(IOdb odb)
        {
            //Processing Territories
            LogMessage("Reading Territories...", false);
            var adapter1 = new TerritoriesTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Territories: " + row.TerritoryID + " ...", false);

                var t = new Territory {TerritoryID = row.TerritoryID, TerritoryDescription = row.TerritoryDescription};

                LogMessage("linking member...", false);
                t.Region = NDbUtil.GetByNumericalID<Region>(odb, Domain.Region.PK, row.RegionID);

                odb.Store(t);
                LogMessage("saved (" + t.TerritoryID + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Territory>().AddUniqueIndexOn("Territory_TerritoryID_PK_index", Territory.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Territory>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Territories" + Environment.NewLine, true);
        }
Ejemplo n.º 15
0
        private void CopyCategories(IOdb odb)
        {
            //Processing Categories
            LogMessage("Reading Categories...", false);
            var adapter1 = new CategoriesTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Categories: " + row.CategoryID.ToString() + " ...", false);

                var c = new Category
                            {
                                CategoryID = row.CategoryID,
                                CategoryName = row.CategoryName,
                                Description = row.IsDescriptionNull() ? null : row.Description,
                                Picture = row.IsPictureNull() ? null : row.Picture
                            };

                odb.Store(c);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Category>().AddUniqueIndexOn("Category_CategoryID_PK_index", Category.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Category>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Categories" + Environment.NewLine, true);
        }
Ejemplo n.º 16
0
        private void CopyShippers(IOdb odb)
        {
            //Processing Shippers
            LogMessage("Reading Shippers...", false);
            var adapter1 = new ShippersTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Shippers: " + row.ShipperID.ToString() + " ...", false);

                var s = new Shipper
                            {
                                ShipperID = row.ShipperID,
                                CompanyName = row.CompanyName,
                                Phone = row.IsPhoneNull() ? null : row.Phone
                            };

                odb.Store(s);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Shipper>().AddUniqueIndexOn("Shipper_ShipperID_PK_index", Shipper.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Shipper>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Shippers" + Environment.NewLine, true);
        }
Ejemplo n.º 17
0
        private void CopySuppliers(IOdb odb)
        {
            //Processing Suppliers
            LogMessage("Reading Suppliers...", false);
            var adapter1 = new SuppliersTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("Supplier: " + row.SupplierID.ToString() + " ...", false);

                var s = new Supplier
                            {
                                SupplierID = row.SupplierID,
                                CompanyName = row.CompanyName,
                                ContactName = row.IsContactNameNull() ? null : row.ContactName,
                                ContactTitle = row.IsContactTitleNull() ? null : row.ContactTitle,
                                Address = row.IsAddressNull() ? null : row.Address,
                                City = row.IsCityNull() ? null : row.City,
                                Region = row.IsRegionNull() ? null : row.Region,
                                PostalCode = row.IsPostalCodeNull() ? null : row.PostalCode,
                                Country = row.IsCountryNull() ? null : row.Country,
                                Phone = row.IsPhoneNull() ? null : row.Phone,
                                Fax = row.IsFaxNull() ? null : row.Fax,
                                HomePage = row.IsHomePageNull() ? null : row.HomePage
                            };

                odb.Store(s);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Supplier>().AddUniqueIndexOn("Supplier_SupplierID_PK_index", Supplier.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Supplier>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Suppliers" + Environment.NewLine, true);
        }
Ejemplo n.º 18
0
        private void CopyProducts(IOdb odb)
        {
            var products = new List<Product>();
            var suppliers = new Hashtable();
            var categories = new Hashtable();
            //Processing Products
            LogMessage("Reading Products...", false);
            var adapter1 = new ProductsTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                var p = new Product
                            {
                                ProductID = row.ProductID,
                                ProductName = row.ProductName,
                                QuantityPerUnit = row.IsQuantityPerUnitNull() ? null : row.QuantityPerUnit,
                                UnitPrice = row.IsUnitPriceNull() ? 0 : Convert.ToDouble(row.UnitPrice),
                                UnitsInStock = row.IsUnitsInStockNull() ? 0 : row.UnitsInStock,
                                UnitsOnOrder = row.IsUnitsOnOrderNull() ? 0 : row.UnitsOnOrder,
                                ReorderLevel = row.IsReorderLevelNull() ? 0 : row.ReorderLevel,
                                Discontinued = row.Discontinued
                            };

                if (!row.IsSupplierIDNull())
                    suppliers.Add(p.ProductID, row.SupplierID);
                if (!row.IsCategoryIDNull())
                    categories.Add(p.ProductID, row.CategoryID);

                products.Add(p);
            }
            foreach (var p in products)
            {
                LogMessage("Product: " + p.ProductID.ToString() + " ...", false);
                if (suppliers.ContainsKey(p.ProductID))
                {
                    LogMessage("linking member...", false);
                    var supplierID = Convert.ToInt64(suppliers[p.ProductID]);
                    var found = NDbUtil.GetByNumericalID<Supplier>(odb, Supplier.PK, supplierID);
                    p.Supplier = found;
                }
                if (categories.ContainsKey(p.ProductID))
                {
                    LogMessage("linking member...", false);
                    var categoryID = Convert.ToInt64(categories[p.ProductID]);
                    var found = NDbUtil.GetByNumericalID<Category>(odb, Category.PK, categoryID);
                    p.Category = found;
                }
                odb.Store(p);

                LogMessage("saved (" + p.ProductID.ToString() + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Product>().AddUniqueIndexOn("Product_ProductID_PK_index", Product.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Product>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Products" + Environment.NewLine, true);
        }
Ejemplo n.º 19
0
        private void CopyOrders(IOdb odb, ref double progress)
        {
            var orders = new List<Order>();
            var customers = new Hashtable();
            var employees = new Hashtable();
            var shippers = new Hashtable();
            //Processing Orders
            LogMessage("Reading Orders...", false);
            var adapter1 = new OrdersTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                var o = new Order
                            {
                                OrderID = row.OrderID,
                                Freight = row.IsFreightNull() ? 0 : Convert.ToDouble(row.Freight),
                                ShipName = row.IsShipNameNull() ? null : row.ShipName,
                                ShipAddress = row.IsShipAddressNull() ? null : row.ShipAddress,
                                ShipCity = row.IsShipCityNull() ? null : row.ShipCity,
                                ShipRegion = row.IsShipRegionNull() ? null : row.ShipRegion,
                                ShipPostalCode = row.IsShipPostalCodeNull() ? null : row.ShipPostalCode,
                                ShipCountry = row.IsShipCountryNull() ? null : row.ShipCountry
                            };

                if (!row.IsCustomerIDNull())
                    customers.Add(o.OrderID, row.CustomerID);
                if (!row.IsEmployeeIDNull())
                    employees.Add(o.OrderID, row.EmployeeID);
                if (!row.IsShipViaNull())
                    shippers.Add(o.OrderID, row.ShipVia);
                if (!row.IsOrderDateNull())
                    o.OrderDate = row.OrderDate;
                if (!row.IsRequiredDateNull())
                    o.RequiredDate = row.RequiredDate;
                if (!row.IsShippedDateNull())
                    o.ShippedDate = row.ShippedDate;

                orders.Add(o);
            }
            foreach (var o in orders)
            {
                LogMessage("Order: " + o.OrderID.ToString() + " ...", false);
                if (customers.ContainsKey(o.OrderID))
                {
                    LogMessage("linking member...", false);
                    var customerID = Convert.ToString(customers[o.OrderID]);
                    var found = NDbUtil.GetByStringID<Customer>(odb, Customer.PK, customerID);
                    o.Customer = found;
                }
                if (employees.ContainsKey(o.OrderID))
                {
                    LogMessage("linking member...", false);
                    var employeeID = Convert.ToInt64(employees[o.OrderID]);
                    var found = NDbUtil.GetByNumericalID<Employee>(odb, Employee.PK, employeeID);
                    o.Employee = found;
                }
                if (shippers.ContainsKey(o.OrderID))
                {
                    LogMessage("linking member...", false);
                    var shipperID = Convert.ToInt64(shippers[o.OrderID]);
                    var found = NDbUtil.GetByNumericalID<Shipper>(odb, Shipper.PK, shipperID);
                    o.ShipVia = found;
                }
                odb.Store(o);
                StepFinished(progress += 0.029);
                LogMessage("saved (" + o.OrderID.ToString() + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<Order>().AddUniqueIndexOn("Order_OrderID_PK_index", Order.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<Order>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with Orders" + Environment.NewLine, true);
        }
Ejemplo n.º 20
0
        private void CopyOrders(IOdb odb, ref double progress)
        {
            var orders    = new List <Order>();
            var customers = new Hashtable();
            var employees = new Hashtable();
            var shippers  = new Hashtable();

            //Processing Orders
            LogMessage("Reading Orders...", false);
            var adapter1 = new OrdersTableAdapter();
            var table1   = adapter1.GetData();

            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                var o = new Order
                {
                    OrderID        = row.OrderID,
                    Freight        = row.IsFreightNull() ? 0 : Convert.ToDouble(row.Freight),
                    ShipName       = row.IsShipNameNull() ? null : row.ShipName,
                    ShipAddress    = row.IsShipAddressNull() ? null : row.ShipAddress,
                    ShipCity       = row.IsShipCityNull() ? null : row.ShipCity,
                    ShipRegion     = row.IsShipRegionNull() ? null : row.ShipRegion,
                    ShipPostalCode = row.IsShipPostalCodeNull() ? null : row.ShipPostalCode,
                    ShipCountry    = row.IsShipCountryNull() ? null : row.ShipCountry
                };

                if (!row.IsCustomerIDNull())
                {
                    customers.Add(o.OrderID, row.CustomerID);
                }
                if (!row.IsEmployeeIDNull())
                {
                    employees.Add(o.OrderID, row.EmployeeID);
                }
                if (!row.IsShipViaNull())
                {
                    shippers.Add(o.OrderID, row.ShipVia);
                }
                if (!row.IsOrderDateNull())
                {
                    o.OrderDate = row.OrderDate;
                }
                if (!row.IsRequiredDateNull())
                {
                    o.RequiredDate = row.RequiredDate;
                }
                if (!row.IsShippedDateNull())
                {
                    o.ShippedDate = row.ShippedDate;
                }

                orders.Add(o);
            }
            foreach (var o in orders)
            {
                LogMessage("Order: " + o.OrderID.ToString() + " ...", false);
                if (customers.ContainsKey(o.OrderID))
                {
                    LogMessage("linking member...", false);
                    var customerID = Convert.ToString(customers[o.OrderID]);
                    var found      = NDbUtil.GetByStringID <Customer>(odb, Customer.PK, customerID);
                    o.Customer = found;
                }
                if (employees.ContainsKey(o.OrderID))
                {
                    LogMessage("linking member...", false);
                    var employeeID = Convert.ToInt64(employees[o.OrderID]);
                    var found      = NDbUtil.GetByNumericalID <Employee>(odb, Employee.PK, employeeID);
                    o.Employee = found;
                }
                if (shippers.ContainsKey(o.OrderID))
                {
                    LogMessage("linking member...", false);
                    var shipperID = Convert.ToInt64(shippers[o.OrderID]);
                    var found     = NDbUtil.GetByNumericalID <Shipper>(odb, Shipper.PK, shipperID);
                    o.ShipVia = found;
                }
                odb.Store(o);
                StepFinished(progress += 0.029);
                LogMessage("saved (" + o.OrderID.ToString() + ")", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor <Order>().AddUniqueIndexOn("Order_OrderID_PK_index", Order.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances <Order>(odb).Count;

            if (table1.Count == objectCount)
            {
                LogMessage(table1.Count + " objects saved", true);
            }
            else
            {
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            }
            LogMessage("Done with Orders" + Environment.NewLine, true);
        }
        public virtual void T1estInsertSimpleObjectODB(int size)
        {
            OdbFileName = "perf-" + size + ".ndb";
            TestSize    = size;
            var doUpdate = true;
            var doDelete = true;

            var inMemory = true;

            // Deletes the database file
            DeleteBase(OdbFileName);
            long t1  = 0;
            long t2  = 0;
            long t3  = 0;
            long t4  = 0;
            long t5  = 0;
            long t6  = 0;
            long t7  = 0;
            long t77 = 0;
            long t8  = 0;
            IOdb odb = null;
            IObjectSet <SimpleObject> l = null;
            SimpleObject so             = null;

            // Insert TEST_SIZE objects
            Println("Inserting " + TestSize + " objects");
            t1  = OdbTime.GetCurrentTimeInMs();
            odb = Open(OdbFileName);
            var fields = new[] { "name" };

            odb.IndexManagerFor <SimpleObject>().AddUniqueIndexOn("index1", fields);
            for (var i = 0; i < TestSize; i++)
            {
                object o = GetSimpleObjectInstance(i);
                odb.Store(o);
            }
            // println("Cache="+Dummy.getEngine(odb).getSession().getCache().toString());
            t2 = OdbTime.GetCurrentTimeInMs();
            // Closes the database
            odb.Close();
            // if(true)return;
            t3 = OdbTime.GetCurrentTimeInMs();
            Println("Retrieving " + TestSize + " objects");
            // Reopen the database
            odb = Open(OdbFileName);
            // Gets the TEST_SIZE objects
            t4 = OdbTime.GetCurrentTimeInMs();
            IQuery q = null;

            for (var j = 0; j < TestSize; j++)
            {
                // println("Bonjour, comment allez vous?" + j);
                q = odb.Query <SimpleObject>();
                q.Descend("name").Constrain((object)("Bonjour, comment allez vous?" + j)).Equal();
                var objects = q.Execute <SimpleObject>();
                so = objects.GetFirst();
                if (!so.GetName().Equals("Bonjour, comment allez vous?" + j))
                {
                    throw new Exception("error while getting object : expected = " + "Bonjour, comment allez vous?" + j +
                                        " / actual = " + so.GetName());
                }
                if (j % 1000 == 0)
                {
                    Println("got " + j + " objects");
                }
            }
            t5 = OdbTime.GetCurrentTimeInMs();
            odb.Close();
            odb = Open(OdbFileName);
            if (doUpdate)
            {
                Println("Updating " + TestSize + " objects");
                so = null;
                var query = odb.Query <SimpleObject>();
                l = query.Execute <SimpleObject>(inMemory);
                while (l.HasNext())
                {
                    so = l.Next();
                    so.SetName(so.GetName().ToUpper());
                    odb.Store(so);
                }
            }
            t6 = OdbTime.GetCurrentTimeInMs();
            odb.Close();
            // if(true)return;
            t7 = OdbTime.GetCurrentTimeInMs();
            if (doDelete)
            {
                Println("Deleting " + TestSize + " objects");
                odb = Open(OdbFileName);
                Println("After open - before delete");
                var query = odb.Query <SimpleObject>();
                l   = query.Execute <SimpleObject>(inMemory);
                t77 = OdbTime.GetCurrentTimeInMs();
                Println("After getting objects - before delete");
                var i = 0;
                while (l.HasNext())
                {
                    so = l.Next();
                    if (!so.GetName().StartsWith("BONJOUR"))
                    {
                        throw new Exception("Update  not ok for " + so.GetName());
                    }
                    odb.Delete(so);
                    if (i % 10000 == 0)
                    {
                        Println("s=" + i);
                    }
                    // println("Cache="+Dummy.getEngine(odb).getSession().getCache().toString());
                    i++;
                }
                odb.Close();
            }
            t8 = OdbTime.GetCurrentTimeInMs();
            // t4 2 times
            DisplayResult("ODB " + TestSize + " SimpleObject objects ", t1, t2, t4, t4, t5, t6, t7, t77, t8);
        }
Ejemplo n.º 22
0
        private void CopyCustomerDemographics(IOdb odb)
        {
            //Processing CustomerDemographics
            LogMessage("Reading CustomerDemographics...", false);
            var adapter1 = new CustomerDemographicsTableAdapter();
            var table1 = adapter1.GetData();
            LogMessage("processing " + table1.Count.ToString() + " rows", true);
            foreach (var row in table1)
            {
                LogMessage("CustomerDemographics: " + row.CustomerTypeID + " ...", false);

                var cd = new CustomerDemographics
                             {
                                 CustomerTypeID = row.CustomerTypeID,
                                 CustomerDesc = row.IsCustomerDescNull() ? null : row.CustomerDesc
                             };

                odb.Store(cd);
                LogMessage("saved", true);
            }
            odb.Commit();

            LogMessage("Commit done, starting create index ...", false);
            odb.IndexManagerFor<CustomerDemographics>().AddUniqueIndexOn(
                "CustomerDemographics_CustomerTypeID_PK_index", CustomerDemographics.PK);
            odb.Commit();
            LogMessage(" index created.", true);

            long objectCount = NDbUtil.GetAllInstances<CustomerDemographics>(odb).Count;
            if (table1.Count == objectCount)
                LogMessage(table1.Count + " objects saved", true);
            else
                LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true);
            LogMessage("Done with CustomerDemographics" + Environment.NewLine, true);
        }