public void Insert()
        {
            //var handler = new CreateStaffHandler(new CreateStaffQuery(new ConnectionFactory(_configConnection)));

            var command = new CreateStaffCommand("first", "last", "123456789", "*****@*****.**", DateTime.Now, null,
                                                 "note");

            if (_commandHandler.Execute(command).Success)
            {
                Console.WriteLine("new record inserted.");
            }

            var staffQuery = new StaffQuery(new ConnectionFactory(_configConnection));
            var staffs     = staffQuery.GetStaffs();

            foreach (var staff in staffs)
            {
                Console.WriteLine($"Name: {staff.FirstName} {staff.LastName} Email: {staff.Email} Create: {staff.StartDate}");
            }
        }
        /// <summary>
        /// Test Find using the Query class
        /// </summary>
        private void Step_30_TestFindByQuery_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                //Insert Mock Instance
                Staff mock   = CreateMockInstance(tm);
                bool  result = DataRepository.StaffProvider.Insert(tm, mock);

                Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed");

                StaffQuery query = new StaffQuery();

                query.AppendEquals(StaffColumn.Id, mock.Id.ToString());
                if (mock.Name != null)
                {
                    query.AppendEquals(StaffColumn.Name, mock.Name.ToString());
                }
                if (mock.Depart != null)
                {
                    query.AppendEquals(StaffColumn.Depart, mock.Depart.ToString());
                }
                if (mock.OpenDate != null)
                {
                    query.AppendEquals(StaffColumn.OpenDate, mock.OpenDate.ToString());
                }
                if (mock.SalaryLevel != null)
                {
                    query.AppendEquals(StaffColumn.SalaryLevel, mock.SalaryLevel.ToString());
                }
                if (mock.Address != null)
                {
                    query.AppendEquals(StaffColumn.Address, mock.Address.ToString());
                }
                if (mock.Phone != null)
                {
                    query.AppendEquals(StaffColumn.Phone, mock.Phone.ToString());
                }
                if (mock.PersonId != null)
                {
                    query.AppendEquals(StaffColumn.PersonId, mock.PersonId.ToString());
                }
                if (mock.PersonIddate != null)
                {
                    query.AppendEquals(StaffColumn.PersonIddate, mock.PersonIddate.ToString());
                }
                if (mock.Location != null)
                {
                    query.AppendEquals(StaffColumn.Location, mock.Location.ToString());
                }
                if (mock.ContactPerson != null)
                {
                    query.AppendEquals(StaffColumn.ContactPerson, mock.ContactPerson.ToString());
                }
                if (mock.Remark != null)
                {
                    query.AppendEquals(StaffColumn.Remark, mock.Remark.ToString());
                }
                if (mock.Labelsprn != null)
                {
                    query.AppendEquals(StaffColumn.Labelsprn, mock.Labelsprn.ToString());
                }
                if (mock.Status != null)
                {
                    query.AppendEquals(StaffColumn.Status, mock.Status.ToString());
                }

                TList <Staff> results = DataRepository.StaffProvider.Find(tm, query);

                Assert.IsTrue(results.Count == 1, "Find is not working correctly.  Failed to find the mock instance");
            }
        }