public void TestLoadAndSaveEmployee()
    {
        ModelContext.beginTrans();
        try {

            CsModelMappers.EmployeeDBMapper pdb = new CsModelMappers.EmployeeDBMapper();

            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 Employee in database, table is empty");
            } else {
                /**
                using (DataContext ctx = DBUtils.Current().dbContext()) {

                    var query = ctx.ExecuteQuery<Employee>(@"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);

                Employee p = pdb.findByKey(pid);
                Employee p2 = (Employee)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.PrEmployeeId==p2.PrEmployeeId,"Expected Field EmployeeId to be equal");
                Assert.IsTrue(p.PrEmployeeName==p2.PrEmployeeName,"Expected Field EmployeeName to be equal");
                Assert.IsTrue(p.PrEmployeeRankId.GetValueOrDefault() ==p2.PrEmployeeRankId.GetValueOrDefault(),"Expected Field EmployeeRankId to be equal");
                Assert.IsTrue(p.PrSalary.GetValueOrDefault() ==p2.PrSalary.GetValueOrDefault(),"Expected Field Salary to be equal");
                Assert.IsTrue(p.PrAddress==p2.PrAddress,"Expected Field Address to be equal");
                Assert.IsTrue(p.PrTelephone==p2.PrTelephone,"Expected Field Telephone to be equal");
                Assert.IsTrue(p.PrMobile==p2.PrMobile,"Expected Field Mobile to be equal");
                Assert.IsTrue(p.PrIdNumber==p2.PrIdNumber,"Expected Field IdNumber to be equal");
                Assert.IsTrue(p.PrSSINumber==p2.PrSSINumber,"Expected Field SSINumber to be equal");
                Assert.IsTrue(p.PrHireDate.GetValueOrDefault() ==p2.PrHireDate.GetValueOrDefault(),"Expected Field HireDate to be equal");
                Assert.IsTrue(p.PrNumDependents.GetValueOrDefault() ==p2.PrNumDependents.GetValueOrDefault(),"Expected Field NumDependents to be equal");
                Assert.IsTrue(p.PrEmployeeTypeCode==p2.PrEmployeeTypeCode,"Expected Field EmployeeTypeCode 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");
                Assert.IsTrue(p.CreateUser==p2.CreateUser,"Expected Field CreateUser to be equal");
                //skip update user!
                Assert.IsTrue(p.PrSampleGuidField.GetValueOrDefault() ==p2.PrSampleGuidField.GetValueOrDefault(),"Expected Field SampleGuidField to be equal");
                Assert.IsTrue(p.PrIsActive==p2.PrIsActive,"Expected Field IsActive to be equal");
                Assert.IsTrue(p.PrSampleBigInt.GetValueOrDefault() ==p2.PrSampleBigInt.GetValueOrDefault(),"Expected Field SampleBigInt to be equal");
                Assert.IsTrue(p.PrSampleSmallInt.GetValueOrDefault() ==p2.PrSampleSmallInt.GetValueOrDefault(),"Expected Field SampleSmallInt to be equal");
                Assert.IsTrue(p.PrSampleNumericFieldInt.GetValueOrDefault() ==p2.PrSampleNumericFieldInt.GetValueOrDefault(),"Expected Field SampleNumericFieldInt to be equal");
                Assert.IsTrue(p.PrSampleNumericField2Decimals.GetValueOrDefault() ==p2.PrSampleNumericField2Decimals.GetValueOrDefault(),"Expected Field SampleNumericField2Decimals to be equal");
                //skip long field:CvFileContent
                //skip long field:photo
                Assert.IsTrue(p.PrEmployeeTypeDescr==p2.PrEmployeeTypeDescr,"Expected Field EmployeeTypeDescr to be equal");
                Assert.IsTrue(p.PrRankDescr==p2.PrRankDescr,"Expected Field RankDescr to be equal");

        Assert.IsTrue(p.PrEmployeeProjects != null);

                p.isDirty = true; //to force save
                ModelContext.Current.saveModelObject(p);

                p = ModelContext.Current.loadModelObject< Employee >(p.Id);
                p.loadObjectHierarchy();

                string json = JsonConvert.SerializeObject(p,Formatting.Indented,
                    new JsonSerializerSettings(){
                            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                        });
                System.IO.FileInfo jf = new System.IO.FileInfo(".\\Employee.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!
        }
    }
Beispiel #2
0
        public void testModelObjectUpdateReadWithMapperInstance()
        {
            DBUtils.Current().beginTrans();
            try {

                EmployeeDBMapper edb = new EmployeeDBMapper();
                Assert.AreEqual(edb.dbConn.GetHashCode(), DBUtils.Current().GetHashCode(),
                    "Expected same connection ");

                Assert.AreEqual(true, edb.dbConn.inTrans,
                    "Expected connection to be in transaction");

                Employee e = edb.findByKey(1);
                e.PrAddress = "nikoy theofanous 3a, nicosia - testObjectRead";
                edb.save(e);

                e = edb.findByKey(1);
                Assert.AreEqual( e.PrAddress , "nikoy theofanous 3a, nicosia - testObjectRead" );

                e = edb.findWhere("address=?", "nikoy theofanous 3a, nicosia - testObjectRead");
                Assert.IsNotNull(e);

                Assert.AreEqual(e.PrAddress, "nikoy theofanous 3a, nicosia - testObjectRead");

            } finally {
                DBUtils.Current().rollbackTrans();
            }

            EmployeeDBMapper edb2 = new EmployeeDBMapper();
            Employee e2 = edb2.findByKey(1);
            e2 = edb2.findWhere("address=?", "nikoy theofanous 3a, nicosia - testObjectRead");
            Assert.IsNull(e2);
        }
Beispiel #3
0
        /// <summary>
        /// Convinience method to save a Employee Object.
        /// Important note: DO NOT CALL THIS IN A LOOP!
        /// </summary>
        /// <param name="EmployeeObj"></param>
        /// <remarks>
        /// Important note: DO NOT CALL THIS IN A LOOP!
        /// This method simply instantiates a EmployeeDBMapper and calls the save method
        /// </remarks>
        public static void saveEmployee(params Employee[] EmployeeObj)
        {
            EmployeeDBMapper dbm = new EmployeeDBMapper();

            dbm.saveList(EmployeeObj.ToList());
        }
Beispiel #4
0
        public static void deleteEmployee(Employee EmployeeObj)
        {
            EmployeeDBMapper dbm = new EmployeeDBMapper();

            dbm.delete(EmployeeObj);
        }
Beispiel #5
0
        public static List <Employee> findList(string @where, List <IDataParameter> listOfIParams)
        {
            EmployeeDBMapper dbm = new EmployeeDBMapper();

            return(dbm.findList(@where, listOfIParams));
        }
Beispiel #6
0
        public static Employee findOne(string @where, params object[] @params)
        {
            EmployeeDBMapper dbm = new EmployeeDBMapper();

            return((Employee)dbm.findWhere(@where, @params));
        }
Beispiel #7
0
    [TestMethod()] public void TestLoadAndSaveEmployee()
    {
        ModelContext.beginTrans();
        try {
            CsModelMappers.EmployeeDBMapper pdb = new CsModelMappers.EmployeeDBMapper();

            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 Employee in database, table is empty");
            }
            else
            {
                /**
                 * using (DataContext ctx = DBUtils.Current().dbContext()) {
                 *
                 *      var query = ctx.ExecuteQuery<Employee>(@"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);

                Employee p  = pdb.findByKey(pid);
                Employee p2 = (Employee)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.PrEmployeeId == p2.PrEmployeeId, "Expected Field EmployeeId to be equal");
                Assert.IsTrue(p.PrEmployeeName == p2.PrEmployeeName, "Expected Field EmployeeName to be equal");
                Assert.IsTrue(p.PrEmployeeRankId.GetValueOrDefault() == p2.PrEmployeeRankId.GetValueOrDefault(), "Expected Field EmployeeRankId to be equal");
                Assert.IsTrue(p.PrSalary.GetValueOrDefault() == p2.PrSalary.GetValueOrDefault(), "Expected Field Salary to be equal");
                Assert.IsTrue(p.PrAddress == p2.PrAddress, "Expected Field Address to be equal");
                Assert.IsTrue(p.PrTelephone == p2.PrTelephone, "Expected Field Telephone to be equal");
                Assert.IsTrue(p.PrMobile == p2.PrMobile, "Expected Field Mobile to be equal");
                Assert.IsTrue(p.PrIdNumber == p2.PrIdNumber, "Expected Field IdNumber to be equal");
                Assert.IsTrue(p.PrSSINumber == p2.PrSSINumber, "Expected Field SSINumber to be equal");
                Assert.IsTrue(p.PrHireDate.GetValueOrDefault() == p2.PrHireDate.GetValueOrDefault(), "Expected Field HireDate to be equal");
                Assert.IsTrue(p.PrNumDependents.GetValueOrDefault() == p2.PrNumDependents.GetValueOrDefault(), "Expected Field NumDependents to be equal");
                Assert.IsTrue(p.PrEmployeeTypeCode == p2.PrEmployeeTypeCode, "Expected Field EmployeeTypeCode 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");
                Assert.IsTrue(p.CreateUser == p2.CreateUser, "Expected Field CreateUser to be equal");
                //skip update user!
                Assert.IsTrue(p.PrSampleGuidField.GetValueOrDefault() == p2.PrSampleGuidField.GetValueOrDefault(), "Expected Field SampleGuidField to be equal");
                Assert.IsTrue(p.PrIsActive == p2.PrIsActive, "Expected Field IsActive to be equal");
                Assert.IsTrue(p.PrSampleBigInt.GetValueOrDefault() == p2.PrSampleBigInt.GetValueOrDefault(), "Expected Field SampleBigInt to be equal");
                Assert.IsTrue(p.PrSampleSmallInt.GetValueOrDefault() == p2.PrSampleSmallInt.GetValueOrDefault(), "Expected Field SampleSmallInt to be equal");
                Assert.IsTrue(p.PrSampleNumericFieldInt.GetValueOrDefault() == p2.PrSampleNumericFieldInt.GetValueOrDefault(), "Expected Field SampleNumericFieldInt to be equal");
                Assert.IsTrue(p.PrSampleNumericField2Decimals.GetValueOrDefault() == p2.PrSampleNumericField2Decimals.GetValueOrDefault(), "Expected Field SampleNumericField2Decimals to be equal");
                //skip long field:CvFileContent
                //skip long field:photo
                Assert.IsTrue(p.PrEmployeeTypeDescr == p2.PrEmployeeTypeDescr, "Expected Field EmployeeTypeDescr to be equal");
                Assert.IsTrue(p.PrRankDescr == p2.PrRankDescr, "Expected Field RankDescr to be equal");



                Assert.IsTrue(p.PrEmployeeProjects != null);

                p.isDirty = true;                 //to force save
                ModelContext.Current.saveModelObject(p);

                p = ModelContext.Current.loadModelObject <Employee>(p.Id);
                p.loadObjectHierarchy();

                string json = JsonConvert.SerializeObject(p, Formatting.Indented,
                                                          new JsonSerializerSettings()
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });
                System.IO.FileInfo jf = new System.IO.FileInfo(".\\Employee.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!
        }
    }
Beispiel #8
0
        public static List <Employee> findList(string @where, params object[] @params)
        {
            EmployeeDBMapper dbm = new EmployeeDBMapper();

            return(dbm.findList(@where, @params));
        }
 /// <summary>
 /// Convinience method to save a Employee Object.
 /// Important note: DO NOT CALL THIS IN A LOOP!
 /// </summary>
 /// <param name="EmployeeObj"></param>
 /// <remarks>
 /// Important note: DO NOT CALL THIS IN A LOOP!  
 /// This method simply instantiates a EmployeeDBMapper and calls the save method
 /// </remarks>
 public static void saveEmployee(params Employee[] EmployeeObj)
 {
     EmployeeDBMapper dbm = new EmployeeDBMapper();
     dbm.saveList(EmployeeObj.ToList());
 }
 public static Employee findOne(string @where, params object[] @params)
 {
     EmployeeDBMapper dbm = new EmployeeDBMapper();
     return (Employee)dbm.findWhere(@where, @params);
 }
 public static List<Employee> findList(string @where, List<IDataParameter> listOfIParams)
 {
     EmployeeDBMapper dbm = new EmployeeDBMapper();
     return dbm.findList(@where,listOfIParams);
 }
 public static List<Employee> findList(string @where, params object[] @params)
 {
     EmployeeDBMapper dbm = new EmployeeDBMapper();
     return dbm.findList(@where, @params);
 }
 public static void deleteEmployee(Employee EmployeeObj)
 {
     EmployeeDBMapper dbm = new EmployeeDBMapper();
     dbm.delete(EmployeeObj);
 }