Ejemplo n.º 1
0
        public async Task <IActionResult> PutTestMaster(int id, TestMaster testMaster)
        {
            if (id != testMaster.TestId)
            {
                return(BadRequest());
            }

            _context.Entry(testMaster).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TestMasterExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 2
0
        void AddMaster(Session session)
        {
            for (var i = 1; i <= MaxRecordCount; ++i)
            {
                var tmpTestMaster = new TestMaster(session);
                tmpTestMaster.Val = $"Master# {i}";
                for (var j = 1; j <= MaxRecordCount; ++j)
                {
                    var tmpTestDetail = new TestDetail(session);
                    tmpTestDetail.Val    = $"Detail# [{i}.{j}]";
                    tmpTestDetail.Master = tmpTestMaster;
                    tmpTestDetail.Save();
                }
                tmpTestMaster.Save();
            }

            XPBaseCollection dataSource;

            if ((dataSource = gridControlMaster.DataSource as XPBaseCollection) != null)
            {
                dataSource.Reload();
            }
            if ((dataSource = gridControlDetail.DataSource as XPBaseCollection) != null)
            {
                dataSource.Reload();
            }
        }
Ejemplo n.º 3
0
        public ActionResult Add(TestMaster obj)
        {
            KeystoneProject.Buisness_Logic.MasterLaboratory.BL_TestMaster TestMasterobj = new KeystoneProject.Buisness_Logic.MasterLaboratory.BL_TestMaster();

            string val = "";

            if (TestMasterobj.CheckHeader(obj.HeaderName, Convert.ToInt32(obj.HeaderID)))
            {
                if (obj.HeaderName != "")
                {
                    if (TestMasterobj.Save(obj))
                    {
                        ModelState.Clear();
                        ViewData["flag"] = "Done";
                        val = "Header Saved Successfully !";
                    }
                }
            }
            else
            {
                try
                {
                    val = "Header Already Exists !";
                    ViewData["flag"] = "Error";
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(Json(val));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult <TestMaster> > PostTestMaster(TestMaster testMaster)
        {
            _context.TestMaster.Add(testMaster);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetTestMaster", new { id = testMaster.TestId }, testMaster));
        }
Ejemplo n.º 5
0
        void ITestMasterService.CreateTestMaster(TestMaster testMaster)
        {
            var validator = validatorFactory.GetValidator <TestMaster>();

            validator.ValidateAndThrow(testMaster);
            testMasterRepository.Add(testMaster);
        }
Ejemplo n.º 6
0
        public JsonResult BindParameterGrid(string search, string chk)
        {
            List <TestMaster> ser    = new List <TestMaster>();
            BL_TestMaster     BL_obj = new BL_TestMaster();
            TestMaster        obj    = new TestMaster();

            HospitalLocation();
            obj.dsAllTestMaster = BL_obj.GetParameterForTestMaster(HospitalID, LocationID, search);
            if (chk == "Parameter")
            {
                int count = 0;
                foreach (DataRow dr in obj.dsAllTestMaster.Tables[0].Rows)
                {
                    TestMaster obj1 = new TestMaster();
                    obj1.ParameterID   = dr["ParameterID"].ToString();
                    obj1.ParameterName = dr["ParameterName"].ToString();

                    ser.Add(obj1);
                }
            }
            else
            {
                int count1 = 0;
                foreach (DataRow dr in obj.dsAllTestMaster.Tables[1].Rows)
                {
                    TestMaster obj12 = new TestMaster();

                    obj12.HeaderID   = dr["HeaderID"].ToString();
                    obj12.HeaderName = dr["HeaderName"].ToString();
                    ser.Add(obj12);
                }
            }

            return(Json(ser, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 7
0
        public void UpdateTestMaster(TestMaster testMaster)
        {
            var validator = validatorFactory.GetValidator <TestMaster>();

            validator.ValidateAndThrow(testMaster);
            testMasterRepository.Update(testMaster);
        }
Ejemplo n.º 8
0
        private TestMaster CreateTestMaster(int i, int detailsCount)
        {
            var master = new TestMaster(unitOfWork);

            master.Val = i.ToString();
            master.Details.AddRange(CreateTestDetailCollection(master, detailsCount));
            return(master);
        }
Ejemplo n.º 9
0
        public ActionResult DeleteConfirmed(int id)
        {
            TestMaster testMaster = db.TestMasters.Find(id);

            db.TestMasters.Remove(testMaster);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 10
0
        private TestDetail CreateTestDetail(TestMaster master, int val)
        {
            var detail = new TestDetail(unitOfWork);

            detail.Master = master;
            detail.Val    = val.ToString();
            return(detail);
        }
Ejemplo n.º 11
0
        public JsonResult Edit(int TestID)
        {
            BL_TestMaster     _TestMaster = new BL_TestMaster();
            TestMaster        obj         = new TestMaster();
            List <TestMaster> GetList     = new List <TestMaster>();
            DataSet           ds          = _TestMaster.GetTestMaster(TestID);

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                GetList.Add(new TestMaster

                {
                    HospitalID = Convert.ToInt32(dr["HospitalID"]),

                    LocationID       = Convert.ToInt32(dr["LocationID"]),
                    TestID           = dr["TestID"].ToString(),
                    TestName         = dr["TestName"].ToString(),
                    HSNCode          = dr["HSNCode"].ToString(),
                    PrintAs          = dr["PrintAs"].ToString(),
                    GeneralCharges   = dr["GeneralCharges"].ToString(),
                    EmergencyCharges = dr["EmergencyCharges"].ToString(),
                    Client           = dr["Client"].ToString(),
                    Alias            = dr["Alias"].ToString(),
                    MyCost           = dr["MyCost"].ToString(),
                    CategoryID       = dr["Category"].ToString(),
                    Category         = dr["CategoryName"].ToString(),
                    TestType         = dr["TestType"].ToString(),
                    ReffCommission   = dr["ReffCommission"].ToString(),
                    ReffCommissionRs = dr["ReffCommissionRs"].ToString(),
                    Commission       = dr["Commission"].ToString(),
                    CommissionRs     = dr["CommissionRs"].ToString(),
                    ForGender        = dr["ForGender"].ToString(),
                    Format           = dr["Format"].ToString(),
                    ProcessDay       = dr["ProcessDay"].ToString(),
                    PrintOrder       = dr["PrintOrder"].ToString(),
                    Methord          = dr["Methord"].ToString(),
                    OutsideLab       = dr["OutSideLab"].ToString(),
                    DisposalDay      = dr["DisposalDay"].ToString(),
                    Discount         = dr["Discount"].ToString(),
                    SampleType       = dr["SampleType"].ToString(),
                    PrintName        = dr["PrintName"].ToString(),
                    PrintTogether    = dr["PrintTogether"].ToString(),
                    WardView         = dr["WardView"].ToString(),
                    Interpretation   = dr["Interpretation"].ToString(),
                    HMSCode          = dr["HMSCode"].ToString(),
                    PatientInstr     = dr["PatientInstr"].ToString(),
                    Footer           = dr["Footer"].ToString(),
                    TechnicianIntr   = dr["TechnicianIntr"].ToString(),
                    MachineName      = dr["MachinName"].ToString(),
                });
            }



            return(new JsonResult {
                Data = GetList, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Ejemplo n.º 12
0
 public ActionResult Edit([Bind(Include = "TestMasterId,TestMasterName")] TestMaster testMaster)
 {
     if (ModelState.IsValid)
     {
         db.Entry(testMaster).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(testMaster));
 }
Ejemplo n.º 13
0
	// Use this for initialization
	void Awake () {
        get = this;
        master = new Master();
        user = SaveDataJsonUtility.Load<User>("savedata");
        master.LoadData();
        foreach(var i in master.Characters.list)
        {
            Debug.Log(i.name);
        }
	}
Ejemplo n.º 14
0
        public ActionResult Create([Bind(Include = "TestMasterId,TestMasterName")] TestMaster testMaster)
        {
            if (ModelState.IsValid)
            {
                db.TestMasters.Add(testMaster);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(testMaster));
        }
Ejemplo n.º 15
0
        private IEnumerable <TestDetail> CreateTestDetailCollection(TestMaster master, int count)
        {
            var list = new List <TestDetail>();

            for (var i = 0; i < count; ++i)
            {
                list.Add(CreateTestDetail(master, i));
            }

            return(list);
        }
Ejemplo n.º 16
0
        bool ITestMasterService.CreateTestMaster(TestMaster testMaster, ref ValidationResult result)
        {
            var validator = validatorFactory.GetValidator <TestMaster>();

            result = validator.Validate(testMaster);

            if (result.IsValid)
            {
                testMasterRepository.Add(testMaster);
            }

            return(result.IsValid);
        }
        public ActionResult Delete(int CollectionID)
        {
            string              val = "";
            TestMaster          obj = new TestMaster();
            BL_CollectionCenter _CollectionCenter = new BL_CollectionCenter();

            if (_CollectionCenter.DeleteCollectionCenter(CollectionID))
            {
                val = "CollectionCenter Deleted Successfully";
            }
            //    Response.Redirect("TestMasterAdd.cshtml");
            return(Json(val));
        }
Ejemplo n.º 18
0
        public ActionResult Delete(int TestID)
        {
            string        val         = "";
            TestMaster    obj         = new TestMaster();
            BL_TestMaster _TestMaster = new BL_TestMaster();

            if (_TestMaster.DeleteTestMaster(HospitalID, TestID, LocationID))
            {
                val = "TestMaster Deleted Successfully";
            }
            //    Response.Redirect("TestMasterAdd.cshtml");
            return(Json(val));
        }
Ejemplo n.º 19
0
        // GET: TestMasters/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TestMaster testMaster = db.TestMasters.Find(id);

            if (testMaster == null)
            {
                return(HttpNotFound());
            }
            return(View(testMaster));
        }
Ejemplo n.º 20
0
        public JsonResult GetMasterDetails(int TestID)
        {
            BL_TestMaster _TestMaster = new BL_TestMaster();
            TestMaster    obj         = new TestMaster();

            obj.dsGetAllWardName = _TestMaster.GetTestMasterDetailIPDCharge(TestID);
            List <TestMaster> GetWard = new List <TestMaster>();

            foreach (DataRow dr in obj.dsGetAllWardName.Tables[0].Rows)
            {
                GetWard.Add(new TestMaster
                {
                    WardID                      = dr["WardID"].ToString(),
                    WardName                    = dr["WardName"].ToString(),
                    GeneralCharges              = dr["GeneralCharges"].ToString(),
                    EmergencyCharges            = dr["EmergencyCharges"].ToString(),
                    TestMasterDetailIPDChargeID = dr["TestMasterDetailIPDChargeID"].ToString(),
                    TestID                      = dr["TestID"].ToString(),
                    Mode = dr["Mode"].ToString(),
                });
            }

            List <TestMaster> GetTest   = new List <TestMaster>();
            DataSet           dsGetTest = _TestMaster.GetTestMasterDetail(HospitalID, TestID, LocationID);

            obj.dsParameterSet = new DataSet();
            obj.dsParameterSet.Tables.Add(new DataTable());

            foreach (DataRow dr in dsGetTest.Tables[0].Rows)
            {
                GetTest.Add(new TestMaster
                {
                    HospitalID     = Convert.ToInt32(dr["HospitalID"]),
                    LocationID     = Convert.ToInt32(dr["LocationID"]),
                    TestDetailsID  = Convert.ToInt32(dr["TestDetailsID"]).ToString(),
                    TestID         = dr["TestID"].ToString(),
                    ParameterName  = dr["ParameterName"].ToString(),
                    HeaderName     = dr["HeaderName"].ToString(),
                    HeaderParmater = dr["HeaderParmater"].ToString(),
                    Type1          = dr["Type"].ToString(),
                    Space1         = dr["Space"].ToString(),
                    HeaderID       = dr["HeaderID"].ToString(),
                    PrintOrder     = dr["Order"].ToString(),
                    Mode           = dr["Mode"].ToString(),
                });
            }

            return(Json(new { GetTest = GetTest, GetWard = GetWard }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 21
0
 //[HttpPost]
 public ActionResult saveTestMaster(TestMasterViewModel testMasterModel)
 {
     try
     {
         TestMaster objTestMaster = null;
         objTestMaster = Mapper.Map <TestMasterViewModel, TestMaster>(testMasterModel);
         _testMasterService.CreateCategory(objTestMaster);
         _iUnitOfWork.Commit();
     }
     catch (Exception e)
     {
         ErrorSignal.FromCurrentContext().Raise(e);
     }
     return(RedirectToAction("Index", "TestMaster"));
 }
Ejemplo n.º 22
0
        public ActionResult CreateTestMaster(TestMasterViewModel testMasterModel)
        {
            TestMaster objTestMaster = null;

            objTestMaster = Mapper.Map <TestMasterViewModel, TestMaster>(testMasterModel);
            testMasterService.CreateTestMaster(objTestMaster);
            iUnitOfWork.Commit();

            var Data = new
            {
                Success        = true,
                SuccessCode    = 200,
                SuccessMessage = "Test Master Created Successfuly"
            };

            return(Json(Data, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 23
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        TestMaster script = (TestMaster)target;

        if (GUILayout.Button("Apply in game"))
        {
            script.StartApplyingEnvChanges();
        }
        if (GUILayout.Button("Redraw"))
        {
            script.RedrawSkybox();
        }
        if (GUILayout.Button("Face to zero"))
        {
            script.FaceObj();
        }
    }
Ejemplo n.º 24
0
        public JsonResult UpdateTestMaster(TestMasterViewModel testMasterViewModel)
        {
            TestMaster testMaster = null;

            testMaster = Mapper.Map <TestMasterViewModel, TestMaster> (testMasterViewModel);
            testMasterService.UpdateTestMaster(testMaster);
            iUnitOfWork.Commit();
            var Data = new
            {
                Success               = true,
                testMasterId          = testMasterViewModel.TestMasterID,
                testMasterName        = testMasterViewModel.TestMasterName,
                testMasterDescription = testMasterViewModel.Description,
                msg = (testMasterViewModel.operation == "Delete")?"Test Master Removed":  "Test Master Updated!"
            };

            return(Json(Data, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 25
0
        public JsonResult GetAllParameter(string prefix)
        {
            List <TestMaster> ser    = new List <TestMaster>();
            BL_TestMaster     BL_obj = new BL_TestMaster();
            TestMaster        obj    = new TestMaster();

            obj.dsAllTestMaster = BL_obj.GetAllParameter();

            foreach (DataRow dr in obj.dsAllTestMaster.Tables[0].Rows)
            {
                TestMaster obj1 = new TestMaster();
                obj1.ParameterID   = dr["ParameterID"].ToString();
                obj1.ParameterName = dr["ParameterName"].ToString().Replace(",", ";");

                ser.Add(obj1);
            }



            return(Json(ser, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 26
0
        public JsonResult ColorHeader(string prefix)
        {
            List <TestMaster> ser    = new List <TestMaster>();
            BL_TestMaster     BL_obj = new BL_TestMaster();
            TestMaster        obj    = new TestMaster();

            obj.dsAllTestMaster = BL_obj.GetAllWard();

            foreach (DataRow dr in obj.dsAllTestMaster.Tables[0].Rows)
            {
                TestMaster obj1 = new TestMaster();
                obj1.WardID           = dr["WardID"].ToString();
                obj1.WardName         = dr["WardName"].ToString();
                obj1.GeneralCharges   = dr["GeneralCharges"].ToString();
                obj1.EmergencyCharges = dr["EmergencyCharges"].ToString();
                ser.Add(obj1);
            }



            return(Json(ser, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 27
0
        public JsonResult imageuplod(TestMaster model)
        {
            //var file = model.ImageFile;
            //string path1 = Server.MapPath("~/") + "LaboratoryFiles/" + file.FileName;
            //System.IO.File.Copy("" + ucTestMaster1.txtUploadFile.Text + "", path1 + "" + ucTestMaster1.txtName.Text + ".docx");



            List <TestMaster> TestMasterImage = new List <TestMaster>();

            var file = model.ImageFile;

            if (file != null)
            {
                //var path = "";
                var filename  = Path.GetFileName(file.FileName);
                var extention = Path.GetExtension(file.FileName);
                var filenamethoutextenction = Path.GetFileNameWithoutExtension(file.FileName);
                //  file.SaveAs(Server.MapPath("~/MRDFiles/" + file.FileName));
                //  Session["Paper"] = "/MRDFiles/" + file.FileName;

                string path = Server.MapPath("~/") + "LaboratoryFiles/" + file.FileName;

                file.SaveAs(path);

                // Session["Paper"] = path;

                //TestMasterImage.Add(new TestMaster
                //{
                //    //PaperName = "/MRDFiles/" + file.FileName,
                //    //Paper = path,

                //});
            }
            return(new JsonResult {
                Data = file, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Ejemplo n.º 28
0
    static void Main(string[] args)
    {
        var master = new TestMaster();
        var go     = new SequentialExecutor(master);

        master.Events.Execute(TestEvents.MeFirst);
        master.Events.Execute(TestEvents.MeSecond);
        master.Events.Execute(TestEvents.MeThird);

        go.Execute();

        master.Events.Execute(TestEvents.MeSecond);
        master.Events.Execute(TestEvents.MeFirst);
        master.Events.Execute(TestEvents.MeThird);

        go.Execute();

        master.Events.Execute(TestEvents.MeThird);
        master.Events.Execute(TestEvents.MeSecond);
        master.Events.Execute(TestEvents.MeFirst);

        go.Execute();
    }
        public bool Save(TestMaster obj)
        {
            Connect();
            SqlCommand cmd = new SqlCommand("IUHeader", con);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@HospitalID", HospitalID);
            cmd.Parameters.AddWithValue("@LocationID", LocationID);
            // cmd.Parameters.AddWithValue("@QualifictionID", 0);
            if (obj.HeaderID == null)
            {
                cmd.Parameters.AddWithValue("@HeaderID", 0);
                cmd.Parameters.AddWithValue("@Mode", "Add");
            }
            else
            {
                cmd.Parameters.AddWithValue("@HeaderID", obj.HeaderID);
                cmd.Parameters.AddWithValue("@Mode", "Edit");
            }
            cmd.Parameters.AddWithValue("@ReferenceCode", 1);
            cmd.Parameters.AddWithValue("@HeaderName", obj.HeaderName);
            cmd.Parameters.AddWithValue("@CreationID", UserID);
            //  cmd.Parameters.AddWithValue("@Mode", "Add");
            con.Open();
            int i = cmd.ExecuteNonQuery();

            con.Close();
            if (i > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 30
0
        static void Main(string[] args)
        {
            try
            {
                XpoDefault.DataLayer = new SimpleDataLayer(new InMemoryDataStore());

                #if TEST_OWN_TABLE
                using (var unitOfWork = new UnitOfWork())
                {
                    #region Person

                    var dataPerson = new[]
                    {
                        new { Id = 1, Name = "Person" }
                    };

                    foreach (var rec in dataPerson)
                    {
                        var entity = InMemoryDataStoreHelper.CreateSimpleEntity(typeof(Person), rec, unitOfWork);

                        if (entity == null)
                        {
                            continue;
                        }

                        unitOfWork.Save(entity);
                    }

                    unitOfWork.CommitChanges();

                    InMemoryDataStoreHelper.ShowExistingData(typeof(Person), o => o is Person item ? $"{{Id:{item.Id}, Name:\"{item.Name}\"}}" : string.Empty);

                    #endregion

                    #region Employee

                    var dataEmployee = new[]
                    {
                        new { Id = 2, Name = "Employee" }
                    };

                    foreach (var rec in dataEmployee)
                    {
                        var entity = InMemoryDataStoreHelper.CreateSimpleEntity(typeof(Employee), rec, unitOfWork);

                        if (entity == null)
                        {
                            continue;
                        }

                        unitOfWork.Save(entity);
                    }

                    unitOfWork.CommitChanges();

                    InMemoryDataStoreHelper.ShowExistingData(typeof(Person), o => o is Person item ? $"{{Id:{item.Id}, Name:\"{item.Name}\"}}" : string.Empty);
                    InMemoryDataStoreHelper.ShowExistingData(typeof(Employee), o => o is Employee item ? $"{{Id:{item.Id}, Name:\"{item.Name}\", Salary:{item.Salary}}}" : string.Empty);

                    #endregion

                    #region Executive

                    var executive = new Executive(unitOfWork);
                    executive.Id     = 3;
                    executive.Name   = "Executive";
                    executive.Salary = 456;
                    executive.Bonus  = 789;

                    var person     = unitOfWork.GetObjectByKey <Person>(3);
                    var employee   = unitOfWork.GetObjectByKey <Employee>(3);
                    var executive2 = unitOfWork.GetObjectByKey <Executive>(3);

                    unitOfWork.Save(executive);
                    unitOfWork.CommitChanges();

                    #endregion
                }
                #endif

                #if TEST_MAPINHERITANCETYPE_PARENTTABLE
                using (var unitOfWork = new UnitOfWork())
                {
                    var entity1 = new Entity1(unitOfWork);
                    entity1.Id    = 1;
                    entity1.Value = "Entity1";
                    entity1.Entity3Derived1.AddRange(new[] { new Entity3Derived1(unitOfWork), new Entity3Derived1(unitOfWork) });
                    for (var i = 0; i < entity1.Entity3Derived1.Count; ++i)
                    {
                        ((Entity3Derived1)entity1.Entity3Derived1[i]).Value = $"Entity3Derived1 #{i + 1} (\"{entity1.Value}\")";
                    }

                    var entity2 = new Entity2(unitOfWork);
                    entity2.Id    = 2;
                    entity2.Value = "Entity2";
                    entity2.Entity3Derived2.AddRange(new[] { new Entity3Derived2(unitOfWork), new Entity3Derived2(unitOfWork) });
                    for (var i = 0; i < entity2.Entity3Derived2.Count; ++i)
                    {
                        ((Entity3Derived2)entity2.Entity3Derived2[i]).Value = $"Entity3Derived2 #{i + 1} (\"{entity2.Value}\")";
                    }

                    unitOfWork.CommitChanges();

                    foreach (var entity in new XPCollection <Entity3Base>(unitOfWork).OrderBy(item => item.Id))
                    {
                        var entity3Derived1 = entity as Entity3Derived1;
                        var entity3Derived2 = entity as Entity3Derived2;
                        var elementId       = entity3Derived1?.Element.Id ?? entity3Derived2?.Element.Id;
                        var elementValue    = entity3Derived1?.Element.Value ?? entity3Derived2?.Element.Value;
                        Debug.WriteLine($"Id:{entity.Id}, Value:{entity.Value}, Element.Id:{elementId?.ToString() ?? "NULL"}, Element.Value:{elementValue ?? "NULL"}");
                    }
                }
                #endif

                Session
                    session    = new Session(),
                    sessionII  = new Session(),
                    sessionIII = new Session();

                XPClassInfo
                    classInfoTestMaster = session.GetClassInfo(typeof(TestMaster)),
                    classInfoTestDetail = session.GetClassInfo(typeof(TestDetail));

                TestMaster
                    testMaster;

                testMaster     = new TestMaster(sessionII);
                testMaster.Val = "testMaster (sessionII)";
                sessionII.Save(testMaster);

                testMaster     = new TestMaster(sessionIII);
                testMaster.Val = "testMaster (sessionIII)";
                sessionIII.Save(testMaster);

                var criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (sessionII)"),
                                                  BinaryOperatorType.Equal);
                if ((testMaster = session.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (sessionIII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = session.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = sessionIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                UnitOfWork
                    uow    = new UnitOfWork(),
                    uowII  = new UnitOfWork(),
                    uowIII = new UnitOfWork();

                testMaster     = new TestMaster(uowII);
                testMaster.Val = "testMaster (uowII)";
                uowII.Save(testMaster);

                testMaster     = new TestMaster(uowIII);
                testMaster.Val = "testMaster (uowIII)";
                uowIII.Save(testMaster);

                var objToSave    = uow.GetObjectsToSave();      // Count = 0
                var objToSaveII  = uowII.GetObjectsToSave();    // Count = 1
                var objToSaveIII = uowIII.GetObjectsToSave();   // Count = 1

                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowIII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // null
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         // nul
                }
                // https://documentation.devexpress.com/#CoreLibraries/CustomDocument2111
                var collection = new XPCollection <TestMaster>(uow);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(uowII);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(uowIII);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(PersistentCriteriaEvaluationBehavior.InTransaction, uow, null);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(PersistentCriteriaEvaluationBehavior.InTransaction, uowII, null);
                Console.WriteLine(collection.Count);
                collection = new XPCollection <TestMaster>(PersistentCriteriaEvaluationBehavior.InTransaction, uowIII, null);
                Console.WriteLine(collection.Count);

                uowII.CommitChanges();
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                uowIII.CommitChanges();
                criteria = new BinaryOperator(new OperandProperty("Name"), new OperandValue("testMaster (uowII)"),
                                              BinaryOperatorType.Equal);
                if ((testMaster = uow.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);         //	oB!
                }
                if ((testMaster = uowIII.FindObject <TestMaster>(criteria)) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val); //	oB!
                }
                objToSave    = uow.GetObjectsToSave();                                                        // Count = 0
                objToSaveII  = uowII.GetObjectsToSave();                                                      // Count = 0
                objToSaveIII = uowIII.GetObjectsToSave();                                                     // Count = 0

                uow.Dispose();
                uowII.Dispose();
                uowIII.Dispose();

                for (var i = 0; i < 3; ++i)
                {
                    testMaster     = new TestMaster(session);
                    testMaster.Val = i.ToString();

                    for (var j = 0; j < 3; ++j)
                    {
                        testMaster.Details.Add(new TestDetail(session));
                        testMaster.Details[j].Val = string.Format("{0}.{1}", i, j);
                    }

                    session.Save(testMaster);
                }

                if (
                    (testMaster =
                         session.FindObject <TestMaster>(new BinaryOperator(new OperandProperty("Name"), new OperandValue("1"),
                                                                            BinaryOperatorType.Equal))) != null)
                {
                    Console.WriteLine("TestMaster: {{Id:{0}, Name:\"{1}\"}}", testMaster.Id, testMaster.Val);

                    foreach (var detail in testMaster.Details)
                    {
                        Console.WriteLine("TestDetail: {{Id:{0}, Master.Id:{1}, Name:\"{2}\"}}", detail.Id, detail.Master.Id,
                                          detail.Val);
                    }
                }

                var resultOfSelectData = session.SelectData(
                    classInfoTestMaster,
                    new CriteriaOperatorCollection {
                    new OperandProperty("Id")
                },
                    CriteriaOperator.Or(
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("1"), BinaryOperatorType.Equal),
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("2"), BinaryOperatorType.Equal)
                        ),
                    false,
                    0,
                    null).ToArray();

                var resultOfGetObjects = session.GetObjects(
                    classInfoTestMaster,
                    CriteriaOperator.Or(
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("1"), BinaryOperatorType.Equal),
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("2"), BinaryOperatorType.Equal)
                        ),
                    null,
                    0,
                    false,
                    true).OfType <TestMaster>().ToArray();

                using (uow = new UnitOfWork())
                {
                    for (var i = 3; i < 6; ++i)
                    {
                        testMaster     = new TestMaster(uow);
                        testMaster.Val = i.ToString();

                        for (var j = 0; j < 3; ++j)
                        {
                            testMaster.Details.Add(new TestDetail(uow));
                            testMaster.Details[j].Val = string.Format("{0}.{1}", i, j);
                        }

                        uow.CommitChanges();
                    }
                }

                resultOfSelectData = session.SelectData(
                    classInfoTestMaster,
                    new CriteriaOperatorCollection {
                    new OperandProperty("Id")
                },
                    CriteriaOperator.Or(
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("4"), BinaryOperatorType.Equal),
                        new BinaryOperator(new OperandProperty("Name"), new OperandValue("5"), BinaryOperatorType.Equal)
                        ),
                    false,
                    0,
                    null).ToArray();

                var res = (from _testMaster_ in new XPQuery <TestMaster>(session)
                           join _testDetail_ in new XPQuery <TestDetail>(session) on _testMaster_.Id equals _testDetail_.Master.Id
                           where
                           _testDetail_.Val == "1.1" /*&& _testDetail_.PhysicalPerson.id == processedUser.id*/ &&
                           _testDetail_.Master.Id == 6
                           select new
                {
                    TestMasterId = _testMaster_.Id,
                    TestDetailId = _testDetail_.Id
                }).ToList();
            }
            catch (Exception eException)
            {
                Console.WriteLine(eException.GetType().FullName + Environment.NewLine + "Message: " + eException.Message + Environment.NewLine + (eException.InnerException != null && !string.IsNullOrEmpty(eException.InnerException.Message) ? "InnerException.Message" + eException.InnerException.Message + Environment.NewLine : string.Empty) + "StackTrace:" + Environment.NewLine + eException.StackTrace);
            }
        }
Ejemplo n.º 31
0
        static void Main(string[] args)
        {
            XpoDefault.ConnectionString = MSSqlConnectionProvider.GetConnectionString(".", "sa", "123", "testdb");

            Session
                sessionI = new Session(),
                sessionII;

            UnitOfWork
                unitOfWorkI;

            XPMemberInfo
                memberInfo;

            XPCollection
                xpCollectionI,
                xpCollectionII;

            XPCollection <Staff>
            xpCollectionStaff;

            CriteriaOperator
                criteria;

            TestMaster
                tmpTestMaster,
                tmpTestMasterII;

            TestDetail
                tmpTestDetail,
                tmpTestDetailII;

            TestDE
                tmpTestDE   = null,
                tmpTestDEII = null;

            int
                tmpInt;

            string
                tmpString;

            XPClassInfo
                testMasterClassInfo = sessionI.GetClassInfo <TestMaster>(),
                testDetailClassInfo = sessionI.GetClassInfo <TestDetail>(),
                staffClassInfo      = sessionI.GetClassInfo <Staff>();

            Victim
                tmpVictim;

            #if TEST_PREFETCH_COLLECTION
            if ((tmpTestMaster = sessionI.GetObjectByKey <TestMaster>(2L)) != null)
            {
                foreach (var detail in tmpTestMaster.Details)
                {
                    Debug.WriteLine($"Id: {detail.Id}");
                }
            }

            if ((tmpTestMaster = sessionI.GetObjectByKey <TestMaster>(1L)) != null && (memberInfo = testMasterClassInfo.GetMember(nameof(TestMaster.Details))).MemberType.IsSubclassOf(typeof(XPBaseCollection)))
            {
                if (memberInfo.GetValue(tmpTestMaster) is XPCollection <TestDetail> xpCollectionTestDetails)
                {
                    if (((IXPPrefetchableAssociationList)xpCollectionTestDetails).NeedPrefetch())
                    {
                        criteria = new BinaryOperator(new OperandProperty(nameof(TestDetail.Master)), new OperandValue(tmpTestMaster.Id), BinaryOperatorType.Equal);
                        var details = sessionI.GetObjects(testDetailClassInfo, criteria, null, 0, true, false);
                        ((IXPPrefetchableAssociationList)xpCollectionTestDetails).FinishPrefetch(details);
                        if (!xpCollectionTestDetails.IsLoaded)
                        {
                            xpCollectionTestDetails.Load();
                        }
                    }
                }

                foreach (var detail in tmpTestMaster.Details)
                {
                    Debug.WriteLine($"Id: {detail.Id}");
                }
            }
            #endif

            #if TEST_GENERICS
            xpCollectionI = new XPCollection(sessionI, typeof(Staff));
            //xpCollectionStaff = xpCollectionI as XPCollection<Staff>; // Error CS0039 Cannot convert type 'DevExpress.Xpo.XPCollection' to 'DevExpress.Xpo.XPCollection<TestCollection.Db.Staff>' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion


            Type genericXPCollectionStaff = typeof(XPCollection <>).MakeGenericType(staffClassInfo.ClassType);
            xpCollectionStaff = Activator.CreateInstance(genericXPCollectionStaff, sessionI) as XPCollection <Staff>;
            xpCollectionStaff = new XPCollection <Staff>(sessionI);

            genericXPCollectionStaff = xpCollectionStaff.GetType();
            if (genericXPCollectionStaff.IsGenericType)
            {
                var genericTypeDefinition = genericXPCollectionStaff.GetGenericTypeDefinition();
                if (genericTypeDefinition == typeof(XPCollection <>))
                {
                    Type type = genericXPCollectionStaff.GetGenericArguments()[0];
                    //type = genericXPCollectionStaff.GetProperty("Item").PropertyType;
                    type = genericXPCollectionStaff.GetTypeInfo().GenericTypeArguments[0];
                }

                var xpBaseCollection = (XPBaseCollection)xpCollectionStaff;
            }

            var customCollectionStaff = new CustomCollection <Staff>(sessionI);
            var customCollection      = (XPBaseCollection)customCollectionStaff;

            Type type1       = xpCollectionI.GetType();
            Type elementType = typeof(object);
            Type type2       = typeof(IEnumerable <>).MakeGenericType(elementType);
            Type type3       = typeof(IQueryable <>).MakeGenericType(elementType);
            bool flag        = type2.IsAssignableFrom(type1); // IEnumerable<> false
            flag = type3.IsAssignableFrom(type1);             // IQueryable<> false
            MethodInfo          method1             = (flag ? queryableDistinctInfo : enumerableDistinctInfo).MakeGenericMethod(elementType);
            MethodInfo          method2             = (flag ? queryableOfTypeInfo : enumerableOfTypeInfo).MakeGenericMethod(elementType);
            ParameterExpression parameterExpression = Expression.Parameter(typeof(object), "dataSource");
            UnaryExpression     unaryExpression     = Expression.Convert((Expression)parameterExpression, flag ? type3 : type2);
            var expr = Expression.Lambda <Func <object, object> >((Expression)(true ? Expression.Call(method1, (Expression)unaryExpression) : Expression.Call(method1, (Expression)Expression.Call(method2, (Expression)unaryExpression))), new ParameterExpression[1]
            {
                parameterExpression
            });
            var func = expr.Compile();
            //var result = func(xpCollectionI);

            type1 = xpCollectionStaff.GetType();
            flag  = type2.IsAssignableFrom(type1);    // IEnumerable<> true
            flag  = type3.IsAssignableFrom(type1);    // IQueryable<> false
            var result = func(xpCollectionStaff);
            #endif

            #if TEST_SORTING
            xpCollectionI = new XPCollection(sessionI, typeof(Staff), null, new SortProperty("Dep", SortingDirection.Ascending), new SortProperty("Name", SortingDirection.Ascending));
            foreach (var item in xpCollectionI.OfType <Staff>())
            {
                Debug.WriteLine($"{{Dep:{item.Dep}, Name:\"{item.Name}\"}}");
            }

            xpCollectionII         = new XPCollection(sessionI, typeof(Staff));
            xpCollectionII.Sorting = new SortingCollection {
                new SortProperty("Dep", SortingDirection.Ascending), new SortProperty("Name", SortingDirection.Ascending)
            };
            foreach (var item in xpCollectionII.OfType <Staff>())
            {
                Debug.WriteLine($"{{Dep:{item.Dep}, Name:\"{item.Name}\"}}");
            }
            #endif

            #if TEST_COLLECTION_FROM_COLLECTION
            var baseCollection = new XPCollection <Victim>(sessionI);
            foreach (var item in baseCollection)
            {
                Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
            }

            var falseCollection = new XPCollection(baseCollection, new BinaryOperator(new OperandProperty("FBit"), new OperandValue(false), BinaryOperatorType.Equal));
            foreach (Victim item in falseCollection)
            {
                Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
            }

            var trueCollection = new XPCollection(baseCollection, new BinaryOperator(new OperandProperty("FBit"), new OperandValue(true), BinaryOperatorType.Equal));
            foreach (Victim item in trueCollection)
            {
                Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
            }

            if ((tmpVictim = ((IBindingList)falseCollection).AddNew() as Victim) != null)
            {
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in falseCollection)
                {
                    Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.FBit = false;
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in falseCollection)
                {
                    Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.Save();
                baseCollection.Reload();
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in falseCollection)
                {
                    Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
            }
            if ((tmpVictim = ((IBindingList)falseCollection).AddNew() as Victim) != null)
            {
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in falseCollection)
                {
                    Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.FBit = true;
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in falseCollection)
                {
                    Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.Save();
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in falseCollection)
                {
                    Debug.WriteLine($"falseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
            }

            if ((tmpVictim = ((IBindingList)trueCollection).AddNew() as Victim) != null)
            {
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in trueCollection)
                {
                    Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.FBit = true;
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in trueCollection)
                {
                    Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.Save();
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in trueCollection)
                {
                    Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
            }
            if ((tmpVictim = ((IBindingList)trueCollection).AddNew() as Victim) != null)
            {
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in trueCollection)
                {
                    Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.FBit = false;
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in trueCollection)
                {
                    Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                tmpVictim.Save();
                foreach (var item in baseCollection)
                {
                    Debug.WriteLine($"baseCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
                foreach (Victim item in trueCollection)
                {
                    Debug.WriteLine($"trueCollection id:{item.Id} f_int:{item.FInt} f_bit:{item.FBit}");
                }
            }
            #endif

            #if TEST_LIFECYCLE
            using (unitOfWorkI = new UnitOfWork())
            {
                xpCollectionI = new XPCollection(typeof(TestMaster));
                AddEventsListeners(xpCollectionI);

                if ((tmpTestMaster = ((IBindingList)xpCollectionI).AddNew() as TestMaster) != null)
                {
                    tmpTestMaster.Name = "Name";
                    tmpTestMaster.Save();
                }

                foreach (TestMaster item in xpCollectionI)
                {
                    System.Diagnostics.Debug.WriteLine(item.Id);
                }
                RemoveEventsListeners(xpCollectionI);
            }
            #endif

            #if TEST_ADD
            using (unitOfWorkI = new UnitOfWork())
            {
                xpCollectionI = new XPCollection(unitOfWorkI, typeof(TestDE));

                    #if TEST_LIFECYCLE
                AddEventsListeners(xpCollectionI);
                    #endif

                if ((tmpTestDE = ((IBindingList)xpCollectionI).AddNew() as TestDE) != null)
                {
                    tmpTestDE.f1 = 1;
                }

                    #if TEST_LIFECYCLE
                RemoveEventsListeners(xpCollectionI);
                    #endif

                tmpTestMaster = new TestMaster(unitOfWorkI);
                    #if TEST_LIFECYCLE
                AddEventsListeners(tmpTestMaster);
                AddEventsListeners(tmpTestMaster.Details);
                    #endif

                if ((tmpTestDetail = ((IBindingList)tmpTestMaster.Details).AddNew() as TestDetail) != null)
                {
                    tmpTestDetail.Name = "blah-blah-blah";
                }

                    #if TEST_LIFECYCLE
                RemoveEventsListeners(tmpTestMaster.Details);
                RemoveEventsListeners(tmpTestMaster);
                    #endif
            }
            #endif

            #if TEST_MODIFY
            using (unitOfWorkI = new UnitOfWork())
            {
                xpCollectionI  = new XPCollection(unitOfWorkI, typeof(TestDE));
                xpCollectionII = new XPCollection(unitOfWorkI, typeof(TestDE));

                criteria = new BinaryOperator(new OperandProperty("id"), new OperandValue(1L), BinaryOperatorType.Equal);

                xpCollectionI.Filter  = criteria;
                xpCollectionII.Filter = criteria;

                if (xpCollectionI.Count != 0)
                {
                    tmpTestDE = xpCollectionI[0] as TestDE;
                }
                if (xpCollectionII.Count != 0)
                {
                    tmpTestDEII = xpCollectionI[0] as TestDE;
                }

                if (tmpTestDE != null)
                {
                    tmpTestDE.f1 = tmpTestDE.f1.HasValue ? tmpTestDE.f1.Value + 1 : 1;
                    tmpTestDE.Save();
                }

                if (tmpTestDEII != null)
                {
                    tmpTestDEII.f1 = tmpTestDEII.f1.HasValue ? tmpTestDEII.f1.Value + 1 : 1;
                    tmpTestDEII.Save();
                }

                unitOfWorkI.CommitChanges();
            }
            #endif

            #if TEST_LOAD
            xpCollectionI = new XPCollection(sessionI, testMasterClassInfo);
            xpCollectionI.Load();
            xpCollectionI.Reload();

            var listOfTestMaster = sessionI.GetObjects(testMasterClassInfo, new BinaryOperator("Name", "TEST An item with the same key has already been added 1:1", BinaryOperatorType.Equal), null, 0, 0, true, true).OfType <TestMaster>().ToList();

            if (listOfTestMaster.Count > 0)
            {
                tmpTestMaster = listOfTestMaster[0];

                if (tmpTestMaster.Details.Count > 0)
                {
                    tmpString = tmpTestMaster.Details[0].Val;
                }
            }
            #endif

            #if TEST_An_item_with_the_same_key_has_already_been_added
            var listOfTestMaster = sessionI.GetObjects(testMasterClassInfo, new BinaryOperator("Name", "TEST An item with the same key has already been added 1:N", BinaryOperatorType.Equal), null, 0, 0, true, true).OfType <TestMaster>().ToList();

            if (listOfTestMaster.Count > 0)
            {
                tmpTestMaster = listOfTestMaster[0];
                tmpString     = tmpTestMaster.DetailVal;
            }
            #endif

            #if TEST_CREATE
            if ((tmpTestMaster = testMasterClassInfo.CreateNewObject(sessionI) as TestMaster) != null)
            {
                tmpTestMaster.Name = DateTime.Now.Ticks.ToString();

                tmpTestMaster.Details.AddRange(new[]
                {
                    testDetailClassInfo.CreateNewObject(sessionI) as TestDetail,
                    testDetailClassInfo.CreateNewObject(sessionI) as TestDetail,
                    testDetailClassInfo.CreateNewObject(sessionI) as TestDetail
                });

                tmpTestMaster.Details.ToList().ForEach(item => item.Name = DateTime.Now.Ticks.ToString());

                sessionI.Save(tmpTestMaster);
            }
            #endif

            #if TEST_SET
            tmpTestMaster = sessionI.GetObjectByKey <TestMaster>(1L);
            tmpInt        = tmpTestMaster.Details.Count;

            sessionII              = new Session();
            tmpTestMasterII        = sessionII.GetObjectByKey <TestMaster>(2L);
            tmpTestDetailII        = sessionII.GetObjectByKey <TestDetail>(2L);
            tmpTestDetailII.Master = tmpTestMasterII;
            sessionII.Save(tmpTestDetailII);

            tmpInt = tmpTestMaster.Details.Count;
            #endif

            #if TEST_REMOVE
            tmpTestMaster = sessionI.GetObjectByKey <TestMaster>(1L);
            tmpInt        = tmpTestMaster.Details.Count;

            sessionII       = new Session();
            tmpTestMasterII = sessionII.GetObjectByKey <TestMaster>(1L);
            tmpTestDetailII = sessionII.GetObjectByKey <TestDetail>(2L);
            tmpTestMasterII.Details.Remove(tmpTestDetailII);
            sessionII.Save(new XPCustomObject[] { tmpTestMasterII, tmpTestDetailII });

            tmpInt = tmpTestMaster.Details.Count;
            #endif
        }