public LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable GetAllSubUnit(string organisationalUnitID)
        {
            LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable DSSubUnitByUnit = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();

            int organisationalUnitTypeID = GetOrganisationalUnitTypeID("B2F34325-84EB-4972-B72E-EB35BB13A3E2", organisationalUnitID);

            if (organisationalUnitTypeID > 0)
            {
                List<int> lstOrganisationalUnitTypeID = GetOrganisationalUnitHierarchyByParentID(organisationalUnitTypeID);

                if (lstOrganisationalUnitTypeID.Count > 0)
                {
                    LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable DSAllSubUnits = _delegationServiceDA.GetOrganisationalUnitByCodeID("80414AC7-728B-4916-A6C5-C4A212BDFE7D");

                    foreach (LookupOrganisationalUnitDataSet.LookupOrganisationalUnitRow rw in DSAllSubUnits)
                    {
                        if (lstOrganisationalUnitTypeID.Contains(Convert.ToInt32(rw.OrganisationalUnitTypeID)))
                        {
                            DSSubUnitByUnit.Rows.Add(rw.ItemArray);
                        }
                    }
                }
            }
            return DSSubUnitByUnit;
        }
        public LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable GetOrganisationalUnitDetailByOrgID(string OrganisationalUnitID)
        {
            LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable LookupOrganisationalUnitDataTable = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();

            DbHelper helper = new DbHelper();
            DbCommand command = helper.BuildDbCommand("P_SS_OrganisationalUnitDetailByOrgID_S");
            helper.AssignParameterValues(command, OrganisationalUnitID);
            Helper.Fill(LookupOrganisationalUnitDataTable, command);

            return LookupOrganisationalUnitDataTable;
        }
        protected override void OnLoad(EventArgs e)
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;
                _presenter.OnViewReady();
                base.OnLoad(e);
                txt_OrganisationID.Text = OrgenisationID;

                LoadDropdown();

                LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable LookupOrganisationalUnitDataTable = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();
                LookupOrganisationalUnitDataTable = _presenter.GetOrganisationLookupByOrgID(OrgenisationID);
                if (LookupOrganisationalUnitDataTable != null && LookupOrganisationalUnitDataTable.Rows.Count > 0)
                {
                    txt_OrganisationName.Text = LookupOrganisationalUnitDataTable[0].OrganisationalUnitName;

                    txt_UnitNumber.Text = LookupOrganisationalUnitDataTable[0].UnitNumber;
                    txt_StreetNumber.Text = LookupOrganisationalUnitDataTable[0].StreetNumber;
                    txt_Street.Text = LookupOrganisationalUnitDataTable[0].Street;
                    cmb_Type.Value = LookupOrganisationalUnitDataTable[0].Type.ToUpper();
                    cmb_Suffix.Value = LookupOrganisationalUnitDataTable[0].Suffix.ToUpper();
                    txt_Suburb.Text = LookupOrganisationalUnitDataTable[0].Suburb;
                    txt_PostCode.Text = LookupOrganisationalUnitDataTable[0].PostCode;
                    cmb_State.Value = LookupOrganisationalUnitDataTable[0].State;
                    txt_Phone.Text = LookupOrganisationalUnitDataTable[0].Phone;
                    txt_Fax.Text = LookupOrganisationalUnitDataTable[0].Fax;
                    txt_Mobile.Text = LookupOrganisationalUnitDataTable[0].Mobile;
                    txt_TollFreePhone.Text = LookupOrganisationalUnitDataTable[0].TollFreePhone;
                    txt_Email.Text = LookupOrganisationalUnitDataTable[0].Email;

                    VersionNumber = int.Parse(LookupOrganisationalUnitDataTable[0].VersionNo);
                }
                this.SetDirtyStatus(false);

            }
            catch (Exception ex)
            {
                this.Enabled = false;
                if (ExceptionManager.Handle(ex)) throw;
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }
        public LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable GetOrganisationLookup()
        {
            LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable LookupOrganisationalUnitDataTable = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();

            DbHelper helper = new DbHelper();
            DbCommand command = helper.BuildDbCommand("P_SS_LookupOrganisationalUnit_S");
            helper.AssignParameterValues(command);
            Helper.Fill(LookupOrganisationalUnitDataTable, command);

            return LookupOrganisationalUnitDataTable;
        }
        public LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable GetOrganisationLookupByOrgID(string OrganisationalUnitID)
        {
            LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable LookupOrganisationalUnitDataTable = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();

            DbHelper helper = new DbHelper();
            DbCommand command = helper.BuildDbCommand("P_SS_LookupOrganisationalUnitByOrgID_S");
            helper.AssignParameterValues(command, OrganisationalUnitID);
            Helper.Fill(LookupOrganisationalUnitDataTable, command);

            #region Get organisation info and address details
            LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable dtOrgDetail = GetOrganisationalUnitDetailByOrgID(OrganisationalUnitID);

            if (dtOrgDetail.Rows.Count > 0)
            {
                LookupOrganisationalUnitDataTable[0].UnitNumber = dtOrgDetail[0].UnitNumber;
                LookupOrganisationalUnitDataTable[0].StreetNumber = dtOrgDetail[0].StreetNumber;
                LookupOrganisationalUnitDataTable[0].StreetNumber = dtOrgDetail[0].StreetNumber;
                LookupOrganisationalUnitDataTable[0].Street = dtOrgDetail[0].Street;
                LookupOrganisationalUnitDataTable[0].Type = dtOrgDetail[0].Type;
                LookupOrganisationalUnitDataTable[0].Suffix = dtOrgDetail[0].Suffix;
                LookupOrganisationalUnitDataTable[0].Suburb = dtOrgDetail[0].Suburb;
                LookupOrganisationalUnitDataTable[0].PostCode = dtOrgDetail[0].PostCode;
                LookupOrganisationalUnitDataTable[0].State = dtOrgDetail[0].State;

                LookupOrganisationalUnitDataTable[0].Mobile = dtOrgDetail[0].Mobile;
                LookupOrganisationalUnitDataTable[0].Phone = dtOrgDetail[0].Phone;
                LookupOrganisationalUnitDataTable[0].TollFreePhone = dtOrgDetail[0].TollFreePhone;
                LookupOrganisationalUnitDataTable[0].Fax = dtOrgDetail[0].Fax;
                LookupOrganisationalUnitDataTable[0].Email = dtOrgDetail[0].Email;
            }
            #endregion

            return LookupOrganisationalUnitDataTable;
        }
        private void ultraButtonSave_Click(object sender, EventArgs e)
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;

                if (!this.ValidateChildren())
                {
                    return;
                }

                this.errorProvider.Clear();

                bool passValidation = true;

                if (this.txt_OrganisationName.Value == null)
                {
                    errorProvider.SetError(txt_OrganisationName, "Organisation name can not be empty");
                    passValidation = false;

                }

                if (string.IsNullOrEmpty(cmb_State.Value == null ? null : cmb_State.Value.ToString()))
                {

                    if (!string.IsNullOrEmpty(txt_UnitNumber.Text)
                        || !string.IsNullOrEmpty(txt_StreetNumber.Text)
                        || !string.IsNullOrEmpty(txt_Street.Text)
                        || !string.IsNullOrEmpty(cmb_Type.Value == null ? null : cmb_Type.Value.ToString())
                        || !string.IsNullOrEmpty(cmb_Suffix.Value == null ? null : cmb_Suffix.Value.ToString())
                        || !string.IsNullOrEmpty(txt_Suburb.Text)
                        || !string.IsNullOrEmpty(txt_PostCode.Text))
                    {
                        errorProvider.SetError(cmb_State, "State is mandatory when to input address.");
                        passValidation=false;
                    }
                }

                if(!passValidation)
                {
                    return;
                }

                LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable dtLookupOrganisationalUnitDataTable = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();

                LookupOrganisationalUnitDataSet.LookupOrganisationalUnitRow rw = dtLookupOrganisationalUnitDataTable.NewLookupOrganisationalUnitRow();
                rw.OrganisationalUnitID = OrgenisationID;
                rw.OrganisationalUnitName= txt_OrganisationName.Text.Trim();
                rw.UnitNumber = txt_UnitNumber.Text;
                rw.StreetNumber = txt_StreetNumber.Text;
                rw.Street = txt_Street.Text;
                rw.Type = cmb_Type.Value==null?string.Empty:cmb_Type.Value.ToString();
                rw.Suffix = cmb_Suffix.Value == null ? string.Empty : cmb_Suffix.Value.ToString();
                rw.Suburb = txt_Suburb.Text;
                rw.PostCode = txt_PostCode.Text;
                rw.State = cmb_State.Value == null ? string.Empty : cmb_State.Value.ToString();
                rw.Phone = txt_Phone.Text;
                rw.Fax = txt_Fax.Text;
                rw.Mobile = txt_Mobile.Text;
                rw.TollFreePhone = txt_TollFreePhone.Text;
                rw.Email = txt_Email.Text;

                rw.VersionNo = VersionNumber.ToString();
                dtLookupOrganisationalUnitDataTable.AddLookupOrganisationalUnitRow(rw);
                _presenter.SaveOrganisationLookup(dtLookupOrganisationalUnitDataTable);

                this.SetDirtyStatus(false);
                _presenter.OnCloseView();
            }
            catch (Exception exception)
            {
                if (ExceptionManager.Handle(exception)) throw;
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }
        public LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable GetAllUnit(string organisationalUnitID)
        {
            LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable DSUnitByBranch = new LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable();

            int organisationalUnitTypeID = GetOrganisationalUnitTypeID("FE195147-2D87-4CE6-8FC8-7E744BD3FD6D",organisationalUnitID);
            if (organisationalUnitTypeID > 0)
            {
                List<int> lstOrganisationalUnitTypeID = GetOrganisationalUnitHierarchyByParentID(organisationalUnitTypeID);

                if (lstOrganisationalUnitTypeID.Count > 0)
                {
                    LookupOrganisationalUnitDataSet.LookupOrganisationalUnitDataTable DSAllUnits = _delegationServiceDA.GetOrganisationalUnitByCodeID("B2F34325-84EB-4972-B72E-EB35BB13A3E2");

                    foreach (LookupOrganisationalUnitDataSet.LookupOrganisationalUnitRow rw in DSAllUnits)
                    {
                        if (lstOrganisationalUnitTypeID.Contains(Convert.ToInt32(rw.OrganisationalUnitTypeID)))
                        {
                            DSUnitByBranch.Rows.Add(rw.ItemArray);
                        }
                    }
                }
            }
            return DSUnitByBranch;
        }