示例#1
0
        /// <summary>
        /// This will DELETE and then INSERT each setting
        /// </summary>
        /// <param name="shippingServiceId"></param>
        /// <param name="settings"></param>
        public void UpdateSettingsDictionary(Dictionary <string, string> settings)
        {
            using (esTransactionScope transaction = new esTransactionScope())
            {
                // DELETE all existing settings for this service
                ShippingServiceSettingQuery qDelete = new ShippingServiceSettingQuery();
                qDelete.Where(qDelete.ShippingServiceId == this.Id.Value);
                ShippingServiceSettingCollection oldSettings = new ShippingServiceSettingCollection();
                oldSettings.Load(qDelete);
                oldSettings.MarkAllAsDeleted();
                oldSettings.Save();

                // INSERT new settings for this service
                if (settings.Keys.Count > 0)
                {
                    ShippingServiceSettingCollection newSettings = new ShippingServiceSettingCollection();
                    foreach (KeyValuePair <string, string> setting in settings)
                    {
                        ShippingServiceSetting newSetting = newSettings.AddNew();
                        newSetting.ShippingServiceId = this.Id.Value;
                        newSetting.Name  = setting.Key;
                        newSetting.Value = setting.Value;
                    }
                    newSettings.Save();
                }

                transaction.Complete();
            }
        }
        public void PgDataTypeTest()
        {
            DateTime    testTime     = Convert.ToDateTime("0001-01-01 01:23:45.678");
            PgDataTypes datatypeTest = new PgDataTypes();

            switch (datatypeTest.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.Npgsql2Provider":
                using (esTransactionScope scope = new esTransactionScope())
                {
                    datatypeTest.TimeType = testTime;
                    datatypeTest.Save();

                    long?tempKey = datatypeTest.Id;

                    datatypeTest = new PgDataTypes();
                    Assert.IsTrue(datatypeTest.LoadByPrimaryKey(tempKey.Value));
                    Assert.IsTrue(datatypeTest.TimeType.HasValue);
                    Assert.AreEqual(datatypeTest.TimeType.Value, testTime);
                    datatypeTest.MarkAsDeleted();
                    datatypeTest.Save();
                }
                break;

            default:
                Assert.Ignore("PostgreSQL only");
                break;
            }
        }
        public void SetGuidPrimaryKey()
        {
            GuidTest dataTest = new GuidTest();

            dataTest.es.Connection.Name = "GuidTest";

            switch (dataTest.es.Connection.ProviderMetadataKey)
            {
            case "esSqlCe":
            case "esSqlCe4":
                using (esTransactionScope scope = new esTransactionScope())
                {
                    string testGuid = "b3883c65-ff94-47c4-8b0c-76896bedd45a";
                    dataTest = new GuidTest();
                    dataTest.es.Connection.Name = "GuidTest";
                    dataTest.GuidKey            = new Guid(testGuid);
                    dataTest.Save();
                    Guid?tempKey = dataTest.GuidKey;
                    dataTest.MarkAsDeleted();
                    dataTest.Save();
                    Assert.AreEqual(testGuid, tempKey.Value.ToString());
                }
                break;

            default:
                Assert.Ignore("SqlCe only");
                break;
            }
        }
示例#4
0
        private void UpdateTaxRates(List <TaxRateInfo> taxRateInfos)
        {
            using (esTransactionScope transaction = new esTransactionScope())
            {
                int storeId = StoreContext.CurrentStore.Id.Value;

                //---- delete all tax regions for this store
                TaxRegionQuery q = new TaxRegionQuery();
                q.Where(q.StoreId == storeId);
                TaxRegionCollection taxRegions = new TaxRegionCollection();
                taxRegions.Load(q);
                taxRegions.MarkAllAsDeleted();
                taxRegions.Save();

                //---- and re-insert them
                // remove duplicate entries
                taxRateInfos.RemoveDuplicates((left, right) => (left.CountryCode == right.CountryCode && left.Region == right.Region) ? 1 : -1);
                foreach (TaxRateInfo taxRate in taxRateInfos)
                {
                    TaxRegion newTaxRegion = taxRegions.AddNew();
                    newTaxRegion.StoreId     = storeId;
                    newTaxRegion.CountryCode = taxRate.CountryCode;
                    newTaxRegion.Region      = taxRate.Region;
                    newTaxRegion.TaxRate     = taxRate.TaxRate;
                }
                taxRegions.Save();

                transaction.Complete();
            }
        }
        public void OracleXmlType()
        {
            OracleXmlTestCollection coll = new OracleXmlTestCollection();

            switch (coll.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.OracleClientProvider":
                using (esTransactionScope scope = new esTransactionScope())
                {
                    string xmltypeCol = @"<?xml version=""1.0""?><EMAIL>SKING</EMAIL>";

                    OracleXmlTest entity = new OracleXmlTest();
                    entity.Id        = "test1";
                    entity.XmlColumn = xmltypeCol;
                    entity.Save();
                    //entity.InsertOracleXml();

                    coll = new OracleXmlTestCollection();
                    //coll.LoadAll();
                    //Assert.IsTrue(coll.LoadOracleXml(), "Load");
                    coll.Query.SelectAllExcept(coll.Query.XmlColumn);
                    coll.Query.Select("<SYS.XMLTYPE.GETSTRINGVAL(\"XmlColumn\") AS \"XmlColumn\">");
                    coll.Query.Load();

                    //string xmlCol = coll[0].XmlColumn;
                    //string xmlId = coll[0].Id;
                    Assert.AreEqual(xmltypeCol, coll[0].XmlColumn, "Compare");
                }
                break;

            default:
                Assert.Ignore("Oracle only.");
                break;
            }
        }
示例#6
0
        /// <summary>
        /// Used to Save the data to the database
        /// </summary>
        /// <returns>True if Successful</returns>
        public override bool Submit(ChangeSet changeSet)
        {
            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    bool success = base.Submit(changeSet);

                    if (success)
                    {
                        scope.Complete();
                    }

                    return(success);
                }
            }
            catch (Exception ex)
            {
                if (!HandleError(ex))
                {
                    throw;
                }

                return(true);
            }
        }
        public static void UpdateSettingsDictionary(int storeId, short paymentProviderId, Dictionary <string, string> settings)
        {
            using (esTransactionScope transaction = new esTransactionScope())
            {
                // DELETE all existing settings for this store/provider
                StorePaymentProviderSettingQuery qDelete = new StorePaymentProviderSettingQuery();
                qDelete.Where(qDelete.StoreId == storeId, qDelete.PaymentProviderId == paymentProviderId);
                StorePaymentProviderSettingCollection oldSettings = new StorePaymentProviderSettingCollection();
                oldSettings.Load(qDelete);
                oldSettings.MarkAllAsDeleted();
                oldSettings.Save();

                // INSERT new settings for this store/provider
                if (settings.Keys.Count > 0)
                {
                    StorePaymentProviderSettingCollection newSettings = new StorePaymentProviderSettingCollection();
                    foreach (KeyValuePair <string, string> setting in settings)
                    {
                        StorePaymentProviderSetting newSetting = newSettings.AddNew();
                        newSetting.StoreId           = storeId;
                        newSetting.PaymentProviderId = paymentProviderId;
                        newSetting.Name  = setting.Key;
                        newSetting.Value = setting.Value;
                    }
                    newSettings.Save();
                }

                transaction.Complete();
            }
        }
 public void TestAttachDetachEntityAdded()
 {
     try
     {
         using (esTransactionScope scope = new esTransactionScope())
         {
             AggregateTestCollection aggTestColl  = new AggregateTestCollection();
             AggregateTestCollection aggCloneColl = new AggregateTestCollection();
             aggCloneColl.LoadAll();
             foreach (AggregateTest entity in aggCloneColl)
             {
                 if (entity.LastName == "Doe")
                 {
                     entity.MarkAllColumnsAsDirty(esDataRowState.Added);
                     aggTestColl.AttachEntity(aggCloneColl.DetachEntity(entity));
                     break;
                 }
             }
             Assert.IsTrue(aggTestColl.IsDirty);
             aggTestColl.Save();
             Assert.IsFalse(aggTestColl.IsDirty, "Collection is still dirty");
             aggTestColl.LoadAll();
             Assert.AreEqual(31, aggTestColl.Count);
         }
     }
     finally
     {
         UnitTestBase.RefreshDatabase();
     }
 }
        public void UnsignedAutoIncrement()
        {
            Mysqltypetest2Collection coll = new Mysqltypetest2Collection();

            // There is a bug in the 1.0.7 Connector/Net for unsigned types.
            // It is fixed in 5.0.3.
            switch (coll.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.MySqlClientProvider":
                using (esTransactionScope scope = new esTransactionScope())
                {
                    Mysqltypetest2 datatypeTest = new Mysqltypetest2();
                    datatypeTest.CharType    = "X";
                    datatypeTest.VarCharType = "xxx";
                    datatypeTest.str().DateType     = "2007-01-01";
                    datatypeTest.str().DateTimeType = "2006-12-31 11:59:30";
                    datatypeTest.TextType = "Some test text.";
                    datatypeTest.str().TimeType = "12:34:56.789";
                    datatypeTest.LongTextType = "Some more test text.";

                    datatypeTest.Save();

                    uint?tempKey = datatypeTest.Id;
                    Assert.IsTrue(datatypeTest.LoadByPrimaryKey(tempKey.Value));
                    datatypeTest.MarkAsDeleted();
                    datatypeTest.Save();
                }
                break;

            default:
                Assert.Ignore("MySQL only");
                break;
            }
        }
        public void TestAssociateDissociateNew()
        {
            int terrKey = -1;
            int empKey  = -1;

            Employee emp = new Employee();

            emp.es.Connection.Name = "ForeignKeyTest";
            Territory terr = new Territory();

            terr.es.Connection.Name = "ForeignKeyTest";

            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    emp.LastName  = "Test Last";
                    emp.FirstName = "Test First";

                    terr.Description = "Some New Territory";
                    terr.Save();
                    terrKey = terr.TerritoryID.Value;

                    emp.AssociateTerritoryCollection(terr);
                    emp.Save();
                    empKey = emp.EmployeeID.Value;

                    Assert.AreEqual(1, emp.UpToTerritoryCollection.Count);
                    foreach (EmployeeTerritory et in emp.EmployeeTerritoryCollectionByEmpID)
                    {
                        Assert.AreEqual(terr.TerritoryID.Value, et.TerrID.Value);
                    }
                }
            }
            finally
            {
                // Clean up
                emp = new Employee();
                emp.es.Connection.Name = "ForeignKeyTest";

                if (emp.LoadByPrimaryKey(empKey))
                {
                    foreach (Territory t in emp.UpToTerritoryCollection)
                    {
                        emp.DissociateTerritoryCollection(t);
                    }
                    emp.MarkAsDeleted();
                    emp.Save();
                }

                terr = new Territory();
                terr.es.Connection.Name = "ForeignKeyTest";

                if (terr.LoadByPrimaryKey(terrKey))
                {
                    terr.MarkAsDeleted();
                    terr.Save();
                }
            }
        }
示例#11
0
        public void TestCollectionDeleteAll()
        {
            int     prdId = -1;
            Product prd   = new Product();

            prd.es.Connection.Name = "ForeignKeyTest";

            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    prd.ProductName  = "UnitTest";
                    prd.UnitPrice    = 1;
                    prd.Discontinued = false;
                    for (int i = 0; i < 3; i++)
                    {
                        OrderItem oi = prd.OrderItemCollectionByProductID.AddNew();
                        oi.OrderID   = i + 1;
                        oi.UnitPrice = prd.UnitPrice;
                        oi.Quantity  = Convert.ToInt16(i);
                        oi.Discount  = 0;
                    }
                    prd.Save();
                    prdId = prd.ProductID.Value;

                    // Test
                    ProductCollection collection = new ProductCollection();
                    collection.es.Connection.Name = "ForeignKeyTest";

                    Assert.IsTrue(collection.LoadAll());
                    Product entity = collection.FindByPrimaryKey(prdId);
                    Assert.AreEqual(3, entity.OrderItemCollectionByProductID.Count);
                    entity.OrderItemCollectionByProductID.MarkAllAsDeleted();
                    entity.MarkAsDeleted();
                    collection.Save();

                    prd = new Product();
                    prd.es.Connection.Name = "ForeignKeyTest";
                    Assert.IsFalse(prd.LoadByPrimaryKey(prdId));

                    OrderItemCollection oic = new OrderItemCollection();
                    oic.es.Connection.Name = "ForeignKeyTest";
                    oic.Query.Where(oic.Query.ProductID == prdId);
                    Assert.IsFalse(oic.Query.Load());
                }
            }
            finally
            {
                prd = new Product();
                prd.es.Connection.Name = "ForeignKeyTest";

                if (prd.LoadByPrimaryKey(prdId))
                {
                    prd.OrderItemCollectionByProductID.MarkAllAsDeleted();
                    prd.MarkAsDeleted();
                    prd.Save();
                }
            }
        }
示例#12
0
        protected void lnkSaveIssue_Click(object sender, EventArgs e)
        {
            using (esTransactionScope scope = new esTransactionScope())
            {
                OMAMFundManager objFundManager = new OMAMFundManager();

                if (fundManager == null)
                {
                    //This is an add
                    objFundManager.FullName    = txtFMName.Text.ToString();
                    objFundManager.Profile     = Editor1.Text.ToString();
                    objFundManager.CreatedBy   = UserId;
                    objFundManager.CreatedDate = DateTime.Now;
                    //MTW objFundManager.FMImage = ddlFundManager.SelectedValue.ToString();

                    objFundManager.Save();
                }
                else
                {
                    //This is an update
                    objFundManager.Query.Where(objFundManager.Query.Id == Convert.ToInt32(fundManager.Id));
                    objFundManager.Query.Load();

                    objFundManager.FullName = txtFMName.Text.ToString();
                    objFundManager.Profile  = Editor1.Text.ToString();
                    //MTW objFundManager.FMImage = ddlFundManager.SelectedValue.ToString();

                    objFundManager.Save();
                }

                //Remove all the assigned funds first
                OMAMLNKManagerFundsCollection objManagerFunds = new OMAMLNKManagerFundsCollection();

                objManagerFunds.Query
                .Where(objManagerFunds.Query.ManagerId == objFundManager.Id);

                objManagerFunds.Query.Load();
                objManagerFunds.MarkAllAsDeleted();
                objManagerFunds.Save();

                //OK, Now add the newly assigned funds
                for (int i = 0; i < cblFundsAssigned.Items.Count; i++)
                {
                    OMAMLNKManagerFunds assignedFunds = new OMAMLNKManagerFunds();
                    assignedFunds.ManagerId = objFundManager.Id;
                    assignedFunds.FundId    = Convert.ToInt16(cblFundsAssigned.Items[i].Value);
                    assignedFunds.Save();
                }

                scope.Complete();

                divAddActivity.Visible = false;
                divFMGrid.Visible      = true;
                LoadFMs();
            }
        }
示例#13
0
        public void AddProductToCart(int productId, int productQty, string jsonProductFieldData)
        {
            //UpdateCartItemInCart(null, productId, productQty, true, jsonProductFieldData);

            DataModel.Cart cart = null;

            using (esTransactionScope transaction = new esTransactionScope())
            {
                cart = GetCartFromDatabase(true);

                CartItemCollection cartItemCollection = cart.CartItemCollectionByCartId;
                List <CartItem>    cartItems          = cartItemCollection.ToList();
                int index = cartItems.FindIndex(ci => (ci.ProductId.Value == productId) && (ci.ProductFieldData == jsonProductFieldData));
                if (index >= 0)
                {
                    // product is in the cart
                    if (productQty <= 0)
                    {
                        // remove from cart
                        cartItemCollection[index].MarkAsDeleted();
                    }
                    else
                    {
                        // add/update quantity
                        cartItemCollection[index].Quantity += productQty;

                        // update ProductFieldData
                        if (!string.IsNullOrEmpty(jsonProductFieldData))
                        {
                            cartItemCollection[index].ProductFieldData = jsonProductFieldData;
                        }
                    }
                }
                else if (productQty > 0)
                {
                    // add to cart
                    CartItem newItem = cartItemCollection.AddNew();
                    newItem.ProductId        = productId;
                    newItem.Quantity         = productQty;
                    newItem.ProductFieldData = jsonProductFieldData;
                }

                //---- update some cart fields too...
                if (storeContext.UserId.HasValue)
                {
                    cart.UserId = storeContext.UserId.Value;
                }

                cart.Save();

                transaction.Complete();
            }

            //return cart;
        }
示例#14
0
        public void ConcurrencyOnDelete()
        {
            ComputedTestCollection collection = new ComputedTestCollection();
            int testId = 0;

            switch (collection.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SybaseSqlAnywhereProvider":
                try
                {
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        // Setup
                        ComputedTest entity = new ComputedTest();
                        entity.Save();
                        testId = entity.Id.Value;

                        // Test
                        entity = new ComputedTest();
                        entity.LoadByPrimaryKey(testId);
                        entity.str().SomeDate = "2007-01-01";

                        ComputedTest entity2 = new ComputedTest();
                        entity2.LoadByPrimaryKey(testId);
                        entity2.MarkAsDeleted();

                        entity.Save();
                        entity2.Save();
                        Assert.Fail("Concurrency Exception not thrown.");
                    }
                }
                catch (EntitySpaces.Interfaces.esConcurrencyException cex)
                {
                    string err = cex.InnerException.Message.Substring(0, 11);
                    Assert.AreEqual("Error", cex.Message.Substring(0, 5));
                    Assert.AreEqual("Concurrency", err);
                }
                finally
                {
                    // Cleanup
                    ComputedTest entity = new ComputedTest();
                    if (entity.LoadByPrimaryKey(testId))
                    {
                        entity.MarkAsDeleted();
                        entity.Save();
                    }
                }
                break;

            default:
                Assert.Ignore("Sybase only.");
                break;
            }
        }
        static private DataTable SaveDynamicCollection_Deletes(esDataRequest request)
        {
            VistaDBCommand cmd = null;

            DataTable dataTable = CreateDataTable(request);

            using (esTransactionScope scope = new esTransactionScope())
            {
                using (VistaDBDataAdapter da = new VistaDBDataAdapter())
                {
                    da.AcceptChangesDuringUpdate = false;
                    da.ContinueUpdateOnError     = request.ContinueUpdateOnError;

                    try
                    {
                        cmd = da.DeleteCommand = Shared.BuildDynamicDeleteCommand(request, request.CollectionSavePacket[0].ModifiedColumns);
                        esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);

                        DataRow[] singleRow = new DataRow[1];

                        // Delete each record
                        foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                        {
                            DataRow row = dataTable.NewRow();
                            dataTable.Rows.Add(row);

                            SetOriginalValues(request, packet, row, true);
                            row.AcceptChanges();
                            row.Delete();

                            singleRow[0] = row;
                            da.Update(singleRow);

                            if (row.HasErrors)
                            {
                                request.FireOnError(packet, row.RowError);
                            }

                            dataTable.Rows.Clear(); // ADO.NET won't let us reuse the same DataRow
                        }
                    }
                    finally
                    {
                        esTransactionScope.DeEnlist(cmd);
                        cmd.Dispose();
                    }
                }

                scope.Complete();
            }

            return(request.Table);
        }
        public void TestAssociateDissociateNewComposite()
        {
            Course c = new Course();

            c.es.Connection.Name = "ForeignKeyTest";
            Student s = new Student();

            s.es.Connection.Name = "ForeignKeyTest";

            switch (c.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                using (esTransactionScope scope = new esTransactionScope())
                {
                    s.S1          = "a";
                    s.S2          = "b";
                    s.StudentName = "Test Student";

                    c.C1        = 1;
                    c.C2        = "b";
                    c.ClassName = "Test Class";
                    c.Save();

                    s.AssociateCourseCollection(c);
                    s.Save();

                    Assert.AreEqual(1, c.UpToStudentCollection.Count);
                    Assert.AreEqual(1, s.UpToCourseCollection.Count);

                    foreach (StudentClass sc in s.StudentClassCollectionBySid1)
                    {
                        Assert.AreEqual(c.C1.Value, sc.Cid1.Value);
                        Assert.AreEqual(c.C2.Trim(), sc.Cid2.Trim());
                        Assert.AreEqual(s.S1.Trim(), sc.Sid1.Trim());
                        Assert.AreEqual(s.S2.Trim(), sc.Sid2.Trim());
                    }

                    s.DissociateCourseCollection(c);
                    s.Save();

                    s.UpToCourseCollection  = null;
                    c.UpToStudentCollection = null;
                    Assert.AreEqual(0, c.UpToStudentCollection.Count);
                    Assert.AreEqual(0, s.UpToCourseCollection.Count);
                }
                break;

            default:
                Assert.Ignore("Not tested");
                break;
            }
        }
        public void NoSeqConcurrencyOnUpdate()
        {
            OracleTest2Collection collection = new OracleTest2Collection();
            string testId = "XXXXX";

            switch (collection.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.OracleClientProvider":
                try
                {
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        // Setup
                        OracleTest2 entity = new OracleTest2();
                        entity.Id = testId;
                        entity.Save();

                        // Test
                        entity = new OracleTest2();
                        entity.LoadByPrimaryKey(testId);
                        entity.str().DateType = "2007-01-01";

                        OracleTest2 entity2 = new OracleTest2();
                        entity2.LoadByPrimaryKey(testId);
                        entity2.str().DateType = "1999-12-31";

                        entity.Save();
                        entity2.Save();
                        Assert.Fail("Concurrency Exception not thrown.");
                    }
                }
                catch (EntitySpaces.Interfaces.esConcurrencyException cex)
                {
                    Assert.AreEqual("ORA-2", cex.Message.ToString().Substring(0, 5));
                }
                finally
                {
                    // Cleanup
                    OracleTest2 entity = new OracleTest2();
                    if (entity.LoadByPrimaryKey(testId))
                    {
                        entity.MarkAsDeleted();
                        entity.Save();
                    }
                }
                break;

            default:
                Assert.Ignore("Oracle only.");
                break;
            }
        }
示例#18
0
        static private void SaveEntity()
        {
            // The transaction isn't necessary here but demonstrates it's usage
            using (esTransactionScope scope = new esTransactionScope())
            {
                Employees employee = new Employees();
                employee.FirstName = "Mike";
                employee.LastName  = "Griffin";
                employee.Save();

                scope.Complete(); // last line of using statement
            }
        }
示例#19
0
        public void TestFailedTransaction()
        {
            switch (aggTest.es.Connection.Name)
            {
            case "SQLStoredProcEnterprise":
            case "SQLDynamicEnterprise":
            case "ORACLEStoredProcEnterprise":
            case "ORACLEDynamicEnterprise":
            case "VistaDBDynamic":
                Assert.Ignore("Using esTransactionScope only");
                break;

            default:
                try
                {
                    aggTest = new AggregateTest();
                    AggregateTest aggTest2  = new AggregateTest();
                    int           tempId1   = -1;
                    int           tempId2   = -1;
                    aggTest2.str().HireDate = "1/1/1";

                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        try
                        {
                            aggTest.Save();
                            tempId1 = aggTest.Id.Value;
                            aggTest2.Save();
                            tempId2 = aggTest2.Id.Value;

                            throw new Exception();

                            scope.Complete();
                        }
                        catch
                        {
                        }
                    }
                    aggTest = new AggregateTest();
                    Assert.IsFalse(aggTest.LoadByPrimaryKey(tempId1));

                    aggTest = new AggregateTest();
                    Assert.IsFalse(aggTest.LoadByPrimaryKey(tempId2));
                }
                catch (Exception ex)
                {
                    Assert.Fail(ex.ToString());
                }
                break;
            }
        }
        public void ConcurrencyOnUpdate()
        {
            ComputedTestCollection collection = new ComputedTestCollection();
            int testId = 0;

            switch (collection.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                try
                {
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        // Setup
                        ComputedTest entity = new ComputedTest();
                        entity.Save();
                        testId = entity.Id.Value;

                        // Test
                        entity = new ComputedTest();
                        entity.LoadByPrimaryKey(testId);
                        entity.str().SomeDate = "2007-01-01";

                        ComputedTest entity2 = new ComputedTest();
                        entity2.LoadByPrimaryKey(testId);
                        entity2.str().SomeDate = "1999-12-31";

                        entity.Save();
                        entity2.Save();
                        Assert.Fail("Concurrency Exception not thrown.");
                    }
                }
                catch (EntitySpaces.Interfaces.esConcurrencyException cex)
                {
                    Assert.AreEqual("Update failed", cex.Message.Substring(0, 13));
                }
                finally
                {
                    ComputedTest entity = new ComputedTest();
                    if (entity.LoadByPrimaryKey(testId))
                    {
                        entity.MarkAsDeleted();
                        entity.Save();
                    }
                }
                break;

            default:
                Assert.Ignore("SQL Server only.");
                break;
            }
        }
示例#21
0
 protected override void UpdateSingleTest()
 {
     using (var ts = new esTransactionScope())
     {
         var simplests = new SimplestsCollection();
         simplests.LoadAll();
         foreach (var o in simplests)
         {
             o.Value++;
             o.Save();
         }
         ts.Complete();
     }
 }
示例#22
0
 protected override void DeleteSingleTest()
 {
     using (var ts = new esTransactionScope())
     {
         var simplests = new SimplestsCollection();
         simplests.LoadAll();
         for (int i = simplests.Count - 1; i >= 0; i--)
         {
             var o = simplests[0];
             o.MarkAsDeleted();
             o.Save();
         }
         ts.Complete();
     }
 }
示例#23
0
        public void TestSaveWithAutoKey()
        {
            int       terrKey = -1;
            Territory terr    = new Territory();

            terr.es.Connection.Name = "ForeignKeyTest";
            TerritoryEx terrEx = new TerritoryEx();

            terrEx.es.Connection.Name = "ForeignKeyTest";

            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    terr.Description = "Some New Territory";

                    terrEx       = terr.TerritoryEx;
                    terrEx.Notes = "Test Group";

                    terr.Save();

                    terrKey = terr.TerritoryID.Value;

                    Assert.IsTrue(terr.TerritoryEx.es.HasData);
                    Assert.AreEqual(terr.TerritoryID.Value, terrEx.TerritoryID.Value);

                    terr = new Territory();
                    terr.es.Connection.Name = "ForeignKeyTest";

                    Assert.IsTrue(terr.LoadByPrimaryKey(terrKey));
                    Assert.IsTrue(terr.TerritoryEx.es.HasData);
                }
            }
            finally
            {
                // Clean up
                terr = new Territory();
                terr.es.Connection.Name = "ForeignKeyTest";

                if (terr.LoadByPrimaryKey(terrKey))
                {
                    terrEx = terr.TerritoryEx;
                    terrEx.MarkAsDeleted();
                    terr.MarkAsDeleted();
                    terr.Save();
                }
            }
        }
        public void TestDateTimeMicroSeconds()
        {
            int           testId = -1;
            AggregateTest test   = new AggregateTest();

            switch (test.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.MSAccessProvider":
                Assert.Ignore("MS Access only resolves to MilliSeconds.");
                break;

            case "EntitySpaces.MySqlClientProvider":
                Assert.Ignore("Not supported.");
                break;

            case "EntitySpaces.SqlServerCeProvider":
            case "EntitySpaces.SqlServerCe4Provider":
            case "EntitySpaces.SqlClientProvider":
                Assert.Ignore("Requires SQL Server 2008 and datetime2 data type.");
                break;

            default:
                try
                {
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        test.HireDate = Convert.ToDateTime("1902-01-01 01:01:01.000001");
                        test.Save();
                        testId = test.Id.Value;

                        test = new AggregateTest();
                        Assert.IsTrue(test.LoadByPrimaryKey(testId));
                        Assert.AreEqual(Convert.ToDateTime("1902-01-01 01:01:01.000001"), test.HireDate.Value, "MicroSeconds");
                    }
                }
                finally
                {
                    // Clean up
                    test = new AggregateTest();
                    if (test.LoadByPrimaryKey(testId))
                    {
                        test.MarkAsDeleted();
                        test.Save();
                    }
                }
                break;
            }
        }
        public void MySQLNumericTypeTest()
        {
            MysqltypetestCollection datatypeTestColl = new MysqltypetestCollection();
            Mysqltypetest           datatypeTest     = new Mysqltypetest();

            // There is a bug in the 1.0.7 Connector/Net for unsigned types.
            // It is fixed in 5.0.3.
            switch (datatypeTestColl.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.MySqlClientProvider":
                using (esTransactionScope scope = new esTransactionScope())
                {
                    datatypeTest.BigIntType    = -1;
                    datatypeTest.BigIntUType   = 1;
                    datatypeTest.DblType       = -1;
                    datatypeTest.DblUType      = 1;
                    datatypeTest.DecType       = (decimal)(-1.5);
                    datatypeTest.DecUType      = (decimal)(1.5);
                    datatypeTest.FloatType     = (float)(-1.5);
                    datatypeTest.FloatUType    = (float)(1.5);
                    datatypeTest.IntType       = -1;
                    datatypeTest.IntUType      = 1;
                    datatypeTest.MedIntType    = -1;
                    datatypeTest.MedIntUType   = 1;
                    datatypeTest.NumType       = (decimal)(-1.5);
                    datatypeTest.NumUType      = (decimal)(1.5);
                    datatypeTest.RealType      = -1.5;
                    datatypeTest.RealUType     = 1.5;
                    datatypeTest.SmallIntType  = -1;
                    datatypeTest.SmallIntUType = 1;
                    datatypeTest.TinyIntType   = (sbyte)(1);
                    datatypeTest.TinyIntUType  = Convert.ToByte(1);

                    datatypeTest.Save();

                    int?tempKey = datatypeTest.Id;
                    Assert.IsTrue(datatypeTest.LoadByPrimaryKey(tempKey.Value));
                    datatypeTest.MarkAsDeleted();
                    datatypeTest.Save();
                }
                break;

            default:
                Assert.Ignore("MySQL only");
                break;
            }
        }
示例#26
0
        public void TestSaveSimpleCollection()
        {
            int empKey = -1;
            EmployeeCollection empColl = new EmployeeCollection();

            empColl.es.Connection.Name = "ForeignKeyTest";
            Employee emp = new Employee();

            emp.es.Connection.Name = "ForeignKeyTest";

            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    empColl.LoadAll();
                    emp           = empColl.AddNew();
                    emp.LastName  = "LastName";
                    emp.FirstName = "FirstName";

                    Order ord = emp.OrderCollectionByEmployeeID.AddNew();
                    ord.CustID  = "10001";
                    ord.CustSub = "001";
                    ord.str().OrderDate = "2007-01-01 00:00:00";

                    empColl.Save();
                    empKey = emp.EmployeeID.Value;

                    Assert.AreEqual(1, emp.OrderCollectionByEmployeeID.Count);
                    Assert.AreEqual(emp.EmployeeID.Value, ord.EmployeeID.Value);
                }
            }
            finally
            {
                // Clean up
                emp = new Employee();
                emp.es.Connection.Name = "ForeignKeyTest";

                if (emp.LoadByPrimaryKey(empKey))
                {
                    OrderCollection ordColl = emp.OrderCollectionByEmployeeID;
                    ordColl.MarkAllAsDeleted();
                    emp.MarkAsDeleted();
                    emp.Save();
                }
            }
        }
        public void DataTypeLargeMoneyMax()
        {
            OrderItem dataTest = new OrderItem();

            dataTest.es.Connection.Name = "ForeignKeyTest";

            switch (dataTest.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                try
                {
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        dataTest = new OrderItem();
                        dataTest.es.Connection.Name = "ForeignKeyTest";
                        dataTest.OrderID            = 3;
                        dataTest.ProductID          = 3;
                        dataTest.Quantity           = 1;
                        dataTest.UnitPrice          = 922337203685477.5807M;
                        dataTest.Save();

                        dataTest = new OrderItem();
                        dataTest.es.Connection.Name = "ForeignKeyTest";
                        Assert.IsTrue(dataTest.LoadByPrimaryKey(3, 3));
                        Assert.AreEqual(922337203685477.5807M, dataTest.UnitPrice.Value);
                    }
                }
                finally
                {
                    // Clean up
                    dataTest = new OrderItem();
                    dataTest.es.Connection.Name = "ForeignKeyTest";
                    if (dataTest.LoadByPrimaryKey(3, 3))
                    {
                        dataTest.MarkAsDeleted();
                        dataTest.Save();
                    }
                }

                break;

            default:
                Assert.Ignore("Sql Server only");
                break;
            }
        }
示例#28
0
 protected override void InsertSingleTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         for (int i = 0; i < count; i++)
         {
             var simplest = new Simplests
             {
                 Id    = i,
                 Value = i
             };
             simplest.Save();
         }
         ts.Complete();
     }
     InstanceCount = count;
 }
示例#29
0
 protected override void CompiledLinqQueryTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         for (int i = 0; i < count; i++)
         {
             var id    = i % InstanceCount;
             var query = new SimplestsCollection();
             query.Load(_db, _compiledQuery(_db, id));
             foreach (var simplest in query)
             {
                 // Doing nothing, just enumerate
             }
         }
         ts.Complete();
     }
 }
示例#30
0
        public void TestSaveSelfReference()
        {
            int      empKey  = -1;
            int      supvKey = -1;
            Employee emp     = new Employee();

            emp.es.Connection.Name = "ForeignKeyTest";
            Employee supv = new Employee();

            supv.es.Connection.Name = "ForeignKeyTest";

            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    emp.LastName  = "LastName";
                    emp.FirstName = "FirstName";

                    supv           = emp.EmployeeCollectionBySupervisor.AddNew();
                    supv.LastName  = "SupvLast";
                    supv.FirstName = "SupvFirst";

                    emp.Save();
                    empKey  = emp.EmployeeID.Value;
                    supvKey = supv.EmployeeID.Value;

                    Assert.AreEqual(1, emp.EmployeeCollectionBySupervisor.Count);
                    Assert.AreEqual(emp.EmployeeID.Value, supv.Supervisor.Value);
                }
            }
            finally
            {
                // Clean up
                emp = new Employee();
                emp.es.Connection.Name = "ForeignKeyTest";

                if (emp.LoadByPrimaryKey(empKey))
                {
                    EmployeeCollection empColl = emp.EmployeeCollectionBySupervisor;
                    empColl.MarkAllAsDeleted();
                    emp.MarkAsDeleted();
                    emp.Save();
                }
            }
        }