[TestMethod()] public void TestLoadAndSaveAccount() { ModelContext.beginTrans(); try { CsModelMappers.AccountDBMapper pdb = new CsModelMappers.AccountDBMapper(); long count = pdb.RecordCount(); if (pdb.SelectFromObjectName != pdb.ManagedTableName) { long countFromSelectObject = pdb.dbConn.getLngValue("select count(*) from " + pdb.SelectFromObjectName); Assert.AreEqual(count, countFromSelectObject, "Count of records in managedTableName {0} and SelectFromObjectName {1} should be equal, as there needs to be exactly 1 to 1 match between records in managed table and selectFromObject.", pdb.ManagedTableName, pdb.SelectFromObjectName); } if (count == 0) { Assert.Inconclusive("No Account in database, table is empty"); } else { /** * using (DataContext ctx = DBUtils.Current().dbContext()) { * * var query = ctx.ExecuteQuery<Account>(@"SELECT * FROM " + pdb.SelectFromObjectName ).Skip(1).Take(1); * var lst = query.ToList(); * * Assert.AreEqual(lst.Count, 1, "Expected to receive 1 record, got: " + lst.Count); * * } * todo: fix boolean fields by generating properties of original fields **/ object pid = ModelContext.CurrentDBUtils.getObjectValue("select top 1 " + pdb.pkFieldName + " from " + pdb.ManagedTableName); Account p = pdb.findByKey(pid); Account p2 = (Account)p.copy(); //Test equality and hash codes Assert.AreEqual(p.GetHashCode(), p2.GetHashCode()); Assert.AreEqual(p, p2); p.isDirty = true; // force save pdb.save(p); // now reload object from database p = null; p = pdb.findByKey(pid); //test fields to be equal before and after save Assert.IsTrue(p.PrAccountid == p2.PrAccountid, "Expected Field Accountid to be equal"); Assert.IsTrue(p.PrAccount == p2.PrAccount, "Expected Field Account to be equal"); Assert.IsTrue(p.PrAccountTypeid.GetValueOrDefault() == p2.PrAccountTypeid.GetValueOrDefault(), "Expected Field AccountTypeid to be equal"); Assert.IsTrue(p.PrBankaccnumber == p2.PrBankaccnumber, "Expected Field Bankaccnumber to be equal"); Assert.IsTrue(p.PrNextCheckNumber == p2.PrNextCheckNumber, "Expected Field NextCheckNumber to be equal"); Assert.IsTrue(p.PrDescription == p2.PrDescription, "Expected Field Description to be equal"); Assert.IsTrue(p.CreateDate.GetValueOrDefault().ToString("MM/dd/yy H:mm:ss zzz") == p2.CreateDate.GetValueOrDefault().ToString("MM/dd/yy H:mm:ss zzz"), "Expected Field Createdate to be equal"); Assert.IsFalse(p.UpdateDate.GetValueOrDefault() == p2.UpdateDate.GetValueOrDefault(), "Expected Field Updatedate NOT to be equal"); //skip update user! Assert.IsTrue(p.CreateUser == p2.CreateUser, "Expected Field Createuser to be equal"); p.isDirty = true; //to force save ModelContext.Current.saveModelObject(p); p = ModelContext.Current.loadModelObject <Account>(p.Id); p.loadObjectHierarchy(); string json = JsonConvert.SerializeObject(p, Formatting.Indented, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); System.IO.FileInfo jf = new System.IO.FileInfo(".\\Account.json"); System.IO.File.WriteAllText(jf.FullName, json); if (pdb.isPrimaryKeyAutogenerated) { p.isNew = true; p.isDirty = true; try { pdb.save(p); } catch (System.Exception e) { Assert.IsTrue(e.Message.ToUpper().Contains("UNIQUE INDEX") || e.Message.Contains("Violation of UNIQUE KEY constraint"), "Insert statement produced error other than violation of unique key:" + e.Message); } } } } finally { ModelContext.rollbackTrans(); // 'Nothing should be saved to the database! } }
public static Account findOne(string @where, params object[] @params) { AccountDBMapper dbm = new AccountDBMapper(); return (Account)dbm.findWhere(@where, @params); }
/// <summary> /// Convinience method to save a Account Object. /// Important note: DO NOT CALL THIS IN A LOOP! /// </summary> /// <param name="AccountObj"></param> /// <remarks> /// Important note: DO NOT CALL THIS IN A LOOP! /// This method simply instantiates a AccountDBMapper and calls the save method /// </remarks> public static void saveAccount(params Account[] AccountObj) { AccountDBMapper dbm = new AccountDBMapper(); dbm.saveList(AccountObj.ToList()); }
public static List<Account> findList(string @where, params object[] @params) { AccountDBMapper dbm = new AccountDBMapper(); return dbm.findList(@where, @params); }
public static List<Account> findList(string @where, List<IDataParameter> listOfIParams) { AccountDBMapper dbm = new AccountDBMapper(); return dbm.findList(@where,listOfIParams); }
public static void deleteAccount(Account AccountObj) { AccountDBMapper dbm = new AccountDBMapper(); dbm.delete(AccountObj); }
public static Account findOne(string @where, params object[] @params) { AccountDBMapper dbm = new AccountDBMapper(); return((Account)dbm.findWhere(@where, @params)); }
public static List <Account> findList(string @where, List <IDataParameter> listOfIParams) { AccountDBMapper dbm = new AccountDBMapper(); return(dbm.findList(@where, listOfIParams)); }
public static List <Account> findList(string @where, params object[] @params) { AccountDBMapper dbm = new AccountDBMapper(); return(dbm.findList(@where, @params)); }
public void TestLoadAndSaveAccount() { ModelContext.beginTrans(); try { CsModelMappers.AccountDBMapper pdb = new CsModelMappers.AccountDBMapper(); long count = pdb.RecordCount(); if (pdb.SelectFromObjectName != pdb.ManagedTableName) { long countFromSelectObject = pdb.dbConn.getLngValue("select count(*) from " + pdb.SelectFromObjectName); Assert.AreEqual(count, countFromSelectObject, "Count of records in managedTableName {0} and SelectFromObjectName {1} should be equal, as there needs to be exactly 1 to 1 match between records in managed table and selectFromObject.", pdb.ManagedTableName, pdb.SelectFromObjectName); } if (count == 0) { Assert.Inconclusive("No Account in database, table is empty"); } else { /** using (DataContext ctx = DBUtils.Current().dbContext()) { var query = ctx.ExecuteQuery<Account>(@"SELECT * FROM " + pdb.SelectFromObjectName ).Skip(1).Take(1); var lst = query.ToList(); Assert.AreEqual(lst.Count, 1, "Expected to receive 1 record, got: " + lst.Count); } todo: fix boolean fields by generating properties of original fields **/ object pid = ModelContext.CurrentDBUtils.getObjectValue("select top 1 " + pdb.pkFieldName + " from " + pdb.ManagedTableName); Account p = pdb.findByKey(pid); Account p2 = (Account)p.copy(); //Test equality and hash codes Assert.AreEqual(p.GetHashCode(), p2.GetHashCode()); Assert.AreEqual(p, p2); p.isDirty = true ; // force save pdb.save(p); // now reload object from database p = null; p = pdb.findByKey(pid); //test fields to be equal before and after save Assert.IsTrue(p.PrAccountid==p2.PrAccountid,"Expected Field Accountid to be equal"); Assert.IsTrue(p.PrAccount==p2.PrAccount,"Expected Field Account to be equal"); Assert.IsTrue(p.PrAccountTypeid.GetValueOrDefault() ==p2.PrAccountTypeid.GetValueOrDefault(),"Expected Field AccountTypeid to be equal"); Assert.IsTrue(p.PrBankaccnumber==p2.PrBankaccnumber,"Expected Field Bankaccnumber to be equal"); Assert.IsTrue(p.PrNextCheckNumber==p2.PrNextCheckNumber,"Expected Field NextCheckNumber to be equal"); Assert.IsTrue(p.PrDescription==p2.PrDescription,"Expected Field Description to be equal"); Assert.IsTrue(p.CreateDate.GetValueOrDefault().ToString("MM/dd/yy H:mm:ss zzz") ==p2.CreateDate.GetValueOrDefault().ToString("MM/dd/yy H:mm:ss zzz"),"Expected Field Createdate to be equal"); Assert.IsFalse(p.UpdateDate.GetValueOrDefault() == p2.UpdateDate.GetValueOrDefault(),"Expected Field Updatedate NOT to be equal"); //skip update user! Assert.IsTrue(p.CreateUser==p2.CreateUser,"Expected Field Createuser to be equal"); p.isDirty = true; //to force save ModelContext.Current.saveModelObject(p); p = ModelContext.Current.loadModelObject< Account >(p.Id); p.loadObjectHierarchy(); string json = JsonConvert.SerializeObject(p,Formatting.Indented, new JsonSerializerSettings(){ ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); System.IO.FileInfo jf = new System.IO.FileInfo(".\\Account.json"); System.IO.File.WriteAllText(jf.FullName,json); if (pdb.isPrimaryKeyAutogenerated) { p.isNew = true; p.isDirty = true; try { pdb.save(p); } catch (System.Exception e) { Assert.IsTrue(e.Message.ToUpper().Contains("UNIQUE INDEX")||e.Message.Contains("Violation of UNIQUE KEY constraint"), "Insert statement produced error other than violation of unique key:"+e.Message); } } } } finally { ModelContext.rollbackTrans(); // 'Nothing should be saved to the database! } }