public void TestSetup()
        {
            dutyPlace_testObject = new DutyPlace();
            busDutyPlace         = new BDutyPlace();

            DatabaseGateway.TA_DutyPlaceDataTable dutyTable = dutyPlaceTA.GetRoot();
            DatabaseGateway.TA_DutyPlaceRow       dutyPlaceRow;
            if (dutyTable.Rows.Count == 0)
            {
                dutyPlaceTA.Insert("TestDutyPlaceRoot", "0-00Test", 0);
                dutyTable = dutyPlaceTA.GetRoot();
            }
            dutyPlaceRow                = dutyTable.Rows[0] as DatabaseGateway.TA_DutyPlaceRow;
            ADODutyPlaceRoot.ID         = dutyPlaceRow.dutyPlc_ID;
            ADODutyPlaceRoot.CustomCode = dutyPlaceRow.dutyPlc_CustomCode;
            ADODutyPlaceRoot.Name       = dutyPlaceRow.dutyPlc_Name;
            ADODutyPlaceRoot.ParentID   = 0;

            dutyPlaceTA.Insert("TestDutyPlace1", "0-00Test1", ADODutyPlaceRoot.ID);
            dutyTable                = dutyPlaceTA.GetDataByCustomCode("0-00Test1");
            dutyPlaceRow             = dutyTable.Rows[0] as DatabaseGateway.TA_DutyPlaceRow;
            ADODutyPlace1.ID         = dutyPlaceRow.dutyPlc_ID;
            ADODutyPlace1.Name       = dutyPlaceRow.dutyPlc_Name;
            ADODutyPlace1.CustomCode = dutyPlaceRow.dutyPlc_CustomCode;
            ADODutyPlace1.ParentID   = dutyPlaceRow.dutyPlc_ParentID;

            dutyPlaceTA.Insert("TestDutyPlace2", "0-00Test2", ADODutyPlaceRoot.ID);
            dutyTable                = dutyPlaceTA.GetDataByCustomCode("0-00Test2");
            dutyPlaceRow             = dutyTable.Rows[0] as DatabaseGateway.TA_DutyPlaceRow;
            ADODutyPlace2.ID         = dutyPlaceRow.dutyPlc_ID;
            ADODutyPlace2.Name       = dutyPlaceRow.dutyPlc_Name;
            ADODutyPlace2.CustomCode = dutyPlaceRow.dutyPlc_CustomCode;
            ADODutyPlace2.ParentID   = dutyPlaceRow.dutyPlc_ParentID;

            DatasetGatewayWorkFlow.TA_PrecardGroupsDataTable precardTable = new DatasetGatewayWorkFlow.TA_PrecardGroupsDataTable();
            precardGroupTA.FillByName(precardTable, PrecardGroupsName.leave.ToString());
            ADOPrecardGroup1.ID   = Convert.ToInt32(precardTable.Rows[0][0]);
            ADOPrecardGroup1.Name = "HourlyLeave";

            precardTA.Insert("TestPrecard1", true, ADOPrecardGroup1.ID, true, false, true, "99999999", false);

            DatasetGatewayWorkFlow.TA_PrecardDataTable pTable = new DatasetGatewayWorkFlow.TA_PrecardDataTable();
            pTable          = precardTA.GetDataByName("TestPrecard1");
            ADOPrecar1.ID   = Convert.ToInt32(pTable.Rows[0][0]);
            ADOPrecar1.Name = "TestPrecard1";

            requestTA.Insert(ADOPrecar1.ID, ADOPerson1.ID, new DateTime(2010, 5, 1), new DateTime(2010, 5, 1), 420, 600, "", DateTime.Now, ADOUser1.ID);

            DatasetGatewayWorkFlow.TA_RequestDataTable requestTable = new DatasetGatewayWorkFlow.TA_RequestDataTable();
            requestTable   = requestTA.GetDataByPersonId(ADOPerson1.ID);
            ADORequest1.ID = Convert.ToInt32(requestTable.Rows[0][0]);

            requestDetailTA.Insert(ADORequest1.ID, null, null, ADODutyPlace2.ID);
        }
        private void GetChildDutyPlaces(decimal dutyPlaceId, IList <decimal> dutyPlaceIds)
        {
            IList <DutyPlace> dutyPlaceList = new BDutyPlace().GetDutyPlaceChilds(dutyPlaceId);

            foreach (DutyPlace item in dutyPlaceList)
            {
                if (!dutyPlaceIds.Contains(item.ID))
                {
                    dutyPlaceIds.Add(item.ID);
                }

                GetChildDutyPlaces(item.ID, dutyPlaceIds);
            }
        }