public void BindData(OrganizationChart chart) { try { if (chart == null) { this.Visible = false; } else { bool notAcknowledged = !chart.IsRootAcknowledged; bool missingRootNode = (chart.StartPointWFPPositionID == -1); bool hasAbolishedPositions = (chart.AbolishedPositionCount > 0); bool hasBrokenHierarchy = (chart.BrokenHierarchyCount > 0); bool hasNewFPPSPositions = (chart.NewFPPSPositionCount > 0); bool toBeDisplayed = notAcknowledged || missingRootNode || hasAbolishedPositions || hasBrokenHierarchy || hasNewFPPSPositions; // show custom validation notes this.customNoteRootNotAcknowledged.Visible = notAcknowledged; this.customNoteMissingRootNode.Visible = missingRootNode; this.customNoteAbolishedPositions.Visible = hasAbolishedPositions; this.customNoteBrokenHierarchy.Visible = hasBrokenHierarchy; this.customNoteNewFPPSPositions.Visible = hasNewFPPSPositions; this.Visible = toBeDisplayed; } } catch (Exception ex) { base.HandleException(ex); } }
private void loadData() { SiteUtility.RefreshOrgChartDataOnly(); OrganizationChart chart = SiteUtility.CurrentOrgChart; int tempPositionID = -1; bool isOK = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID); if (isOK) { WorkforcePlanningPosition position = WorkforcePlanningPositionManager.Instance.GetByID(tempPositionID); if (position.WFPPositionID == -1) { base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString()); } else { customNewFPPSPosition.BindData(position); } } else { base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString()); } }
private void loadData() { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; int tempPositionID = -1; bool isOK = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID); if (isOK) { OrganizationChartPosition position = OrganizationChartPositionManager.Instance.GetByID(chart.OrganizationChartID, tempPositionID); if (position.WFPPositionID == -1) { base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString()); } else { // now check to see if this is a WFP or an FPPS if (position.ChartPositionType == enumChartPositionType.WFP) { this.customWFPPosition.BindData(position); } else { this.customFPPSPosition.BindData(position); } } } else { base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString()); } }
private void buttonSaveNewRoot_Click(object sender, EventArgs e) { try { if (Page.IsValid) { OrganizationChart chart = new OrganizationChart() { OrganizationChartID = base.CurrentOrgChartID, UpdatedBy = new ActionUser(base.CurrentUserID), StartPointWFPPositionID = int.Parse(this.dropDownPositions.SelectedValue) }; // save new top level position OrganizationChartManager.Instance.UpdateRootNode(chart); // reset replace root section this.checkboxReplaceRoot.Checked = false; this.toggleReplaceRoot(false); // reload page data loadData(); } } catch (InvalidRootNodePositionReplacementException) { base.PrintErrorMessage(GetLocalResourceObject("InvalidRootNodePositionReplacementExceptionMessage").ToString(), true); } catch (Exception ex) { base.HandleException(ex); } }
private void loadData() { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; // validation check for base.CurrentOrgChart is in OrgChartRequiredUserControlBase // load data base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue)); int tempPositionID = -1; bool isTempIDOK = true; // check drill down value -- not certain if there is a global if (Request.QueryString[POSITIONIDKEY] != null) { isTempIDOK = int.TryParse(Request.QueryString[POSITIONIDKEY], out tempPositionID); } if (isTempIDOK) { setView(chart, tempPositionID); customOrgChartDetails.BindData(chart); bindPositionsGrid(); } else { base.PrintErrorMessage(GetLocalResourceObject("InvalidPositionIDParameterMessage").ToString()); } }
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { var id = Request["Id"]; //var id = "d04a82be-5e52-43d2-a126-408de4fa1024"; errorDesc.Text = ""; if (String.IsNullOrEmpty(id)) { ViewState["OpStatus"] = "Add"; var organization = new OrganizationChart(); DataBindHelper<OrganizationChart>.Bind(form1, organization); Session.Remove("OrgCondtion"); } else { ViewState["OpStatus"] = "Update"; var guidRoleId = new Guid(id); ViewState["Id"] = guidRoleId; BindControl(guidRoleId); rbtnOrganizationType.Enabled = false; } BindAppModule(); } }
private void setView(OrganizationChart chart) { if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Undefined || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Published) { this.gridPositions.Columns[0].Visible = false; // Exclude Column this.gridPositions.Columns[1].Visible = false; // Include Column } }
private void loadData() { SiteUtility.RefreshOrgChartDataOnly(); OrganizationChart chart = SiteUtility.CurrentOrgChart; base.PageTitle = string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue); this.customViewChart.BindChart(chart, OrganizationChartTypeViews.Published); }
private OrganizationChartPosition buildNewPosition() { OrganizationChart chart = base.CurrentOrgChart; int calculatedOrgCodeID = -1; int dutyCountryID = ControlUtility.GetDropdownValue(this.dropDownDutyStationCountries); if (chart.OrganizationChartTypeID == enumOrgChartType.SingleOrg) { calculatedOrgCodeID = chart.OrgCode.OrganizationCodeID; } else { calculatedOrgCodeID = int.Parse(this.dropDownMultipleOrgCodes.SelectedValue); } // now add position and include in the current chart OrganizationChartPosition newPosition = new OrganizationChartPosition() { OrganizationChartID = chart.OrganizationChartID, OrganizationCodeID = calculatedOrgCodeID, CreatedByID = base.CurrentUserID, PositionTitle = this.textboxPositionTitle.Text, PayPlanID = ControlUtility.GetDropdownValue(this.dropDownPayPlan), SeriesID = ControlUtility.GetDropdownValue(this.dropDownSeries), RegionID = chart.OrgCode.RegionID, FPLGrade = ControlUtility.GetDropdownValue(this.dropDownFPLGrades), Grade = ControlUtility.GetDropdownValue(this.dropDownCurrentGrades), DutyStationCountryID = dutyCountryID, DutyStationStateID = (dutyCountryID == -1) ? (int?)null : dutyCountryID, DutyStationDescription = this.textboxDutyStationCity.Text, eOrgPositionType = (enumOrgPositionType)ControlUtility.GetDropdownValue(this.dropDownOrganizationPositionTypes), SupervisoryStatus = ControlUtility.GetDropdownValue(this.dropDownPositionTypesSupervisoryStatuses), ReportsToID = ControlUtility.GetDropdownValue(this.dropDownParentPositions), PositionGroupType = (enumOrgPositionGroupType)ControlUtility.GetDropdownValue(this.dropDownPositionLocationGroupTypes), PositionPlacementType = (enumOrgPositionPlacementType)ControlUtility.GetDropdownValue(this.dropDownPositionPlacements) }; if (this.checkboxIsEncumbered.Checked) { newPosition.FirstName = this.textboxFirstName.Text; newPosition.LastName = this.textboxLastName.Text; newPosition.MiddleName = this.textboxMiddleName.Text; newPosition.EmployeeName = string.Format("{0} {1} {2}", this.textboxFirstName.Text.Trim(), string.IsNullOrWhiteSpace(this.textboxMiddleName.Text) ? string.Empty : this.textboxMiddleName.Text.Trim(), this.textboxLastName.Text.Trim()); newPosition.PositionStatusHistory = (int)enumOrgPositionStatusHistoryType.ActiveEmployee; } else { newPosition.PositionStatusHistory = (int)enumOrgPositionStatusHistoryType.ActiveVacant; } return(newPosition); }
private void loadData() { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; // validation check for base.CurrentOrgChart is in OrgChartRequiredUserControlBase base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue)); customOrgChartDetails.BindData(chart); setView(chart); bindNewFPPSPositionsGrid(); }
private void setView(OrganizationChart chart) { // set visibility of buttons bool isRootAcknowledged = chart.IsRootAcknowledged; // show for Draft or Review this.buttonDeleteOrgChart.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review); this.rowReplaceRoot.Visible = (base.CurrentOrgChartNavMode == enumNavigationMode.Edit) && (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review); // Only show Submit to Review/Approval/Sign and Publish if there are no Abolished Positions // We always show Submit to Draft (unless the chart is already in Draft) this.spanSubmitActionButtons.Visible = (isRootAcknowledged && chart.AbolishedPositionCount == 0 && chart.BrokenHierarchyCount == 0 && chart.StartPointWFPPositionID != -1); //----------------------------------------------------- // workflow buttons // show for Review and Approve this.buttonSubmitToDraft.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval); // show for Draft this.buttonSubmitToReview.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft); // show for Draft or Review this.buttonSubmitToApprove.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review); // show for Approve bool showApproval = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval); this.buttonSignAndPublish.Visible = showApproval; this.rowPublish.Visible = showApproval; // now set button labels string submitToString = GetLocalResourceObject("SubmitButtonPrefix").ToString(); string revertToString = GetLocalResourceObject("RevertButtonPrefix").ToString(); string draftSuffix = GetLocalResourceObject("DraftSuffix").ToString(); string reviewSuffix = GetLocalResourceObject("ReviewSuffix").ToString(); string approvalSuffix = GetLocalResourceObject("ApprovalSuffix").ToString(); if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft) { this.buttonSubmitToReview.Text = string.Format(submitToString, reviewSuffix); this.buttonSubmitToApprove.Text = string.Format(submitToString, approvalSuffix); } else if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review) { this.buttonSubmitToDraft.Text = string.Format(revertToString, draftSuffix); this.buttonSubmitToApprove.Text = string.Format(submitToString, approvalSuffix); } else if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval) { this.buttonSubmitToDraft.Text = string.Format(revertToString, draftSuffix); } }
private void buildLinks(OrganizationChart chart) { string lineItemURL = string.Empty; //if (!string.IsNullOrWhiteSpace(this._redirectSuffix)) // lineItemURL = string.Format("?rdr={0}", this._redirectSuffix); this.linkViewOrganizationChart.NavigateUrl = string.Format("~/OrgChart/ViewChart.aspx{0}", lineItemURL); this.linkViewPublishedChart.NavigateUrl = string.Format("~/OrgChart/ViewPubChart.aspx{0}", lineItemURL); this.linkAbolishedPositions.NavigateUrl = string.Format("~/OrgChart/AbolishedPositions.aspx{0}", lineItemURL); this.linkNewFPPSPositions.NavigateUrl = string.Format("~/OrgChart/NewFPPSPositions.aspx{0}", lineItemURL); }
private bool TryLoadChart(string path, out OrganizationChart chart) { if (!File.Exists(path)) { MessageBox.Show($"File does not exist: {path}"); chart = null; return(false); } using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); chart = new OrganizationChart(stream); return(true); }
private void dropDownOrganizationCodes_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) { try { enumOrgChartType selectedChartType = (enumOrgChartType)int.Parse(this.dropDownChartTypes.SelectedValue); int orgCodeID = ControlUtility.GetDropdownValue(this.dropDownOrganizationCodes, "-1"); // reset panel view resetOrgChartPanels(); if (orgCodeID != -1) { // Three POSSIBLE STATES: // A. Existing In-Progress Chart // B. No In-Process Chart but has a Published Chart // C. No In-Process Chart/No Published Chart // State 1: Existing In-Progress Chart OrganizationChart chart = OrganizationChartManager.Instance.GetByOrgCodeAndChartType(orgCodeID, selectedChartType); if (chart.OrganizationChartID != -1) { // Chart is In-Process setChartView(this.panelInProcessChart, CreationType.None, false); } else { // No In-Process Chart -- now check published charts OrganizationChartLog chartLog = OrganizationChartLogManager.Instance.GetByOrgCodeAndChartType(orgCodeID, selectedChartType); if (chartLog.OrganizationChartLogID == -1) { // State 3: No In-Process Chart/No Published Chart setChartView(this.panelNoInProcessNoPublished, CreationType.New, true); // bind root positions by org code bindRootPositionsByOrgCode(orgCodeID); } else { // State 2: No In-Process Chart but has a Published Chart setChartView(this.panelPublishedChart, CreationType.NewFromTemplate, true); } } } } catch (Exception ex) { base.HandleException(ex); } }
public void Import(DataSet dataSet) { var parentDic = new Dictionary <string, OrganizationChart>(); var allRecords = _db.OrganizationChart.Where(p => p.IsDeleted || !p.IsDeleted).ToList(); allRecords.ForEach(p => p.IsDeleted = true); _db.SaveChanges(); foreach (DataRow row in dataSet.Tables[0].Rows) { var childCode = row["SETCODE"].ToString(); var parentCode = row["PARENTSETCODE"].ToString(); var title = row["SETDSCP"].ToString(); var orgId = int.Parse(childCode); var org = _db.OrganizationChart.FirstOrDefault(p => p.OrganizationID == orgId); if (org == null) { var organizationChart = new OrganizationChart { OrganizationID = long.Parse(childCode), ParentOrganizatinID = long.Parse(parentCode), Title = title, IsActive = true, IsDeleted = false, OrganizationTypeID = 1, Weight = 0, InsertDate = DateTime.Now, InsertUser = "******" }; _db.OrganizationChart.AddObject(organizationChart); _insertCount++; } else { org.ParentOrganizatinID = long.Parse(parentCode); org.Title = title; org.IsDeleted = false; _updateCount++; _db.OrganizationChart.ApplyCurrentValues(org); } } _db.SaveChanges(); var deletedObjects = _db.OrganizationChart.Where(p => p.IsDeleted); _deleteCount = deletedObjects.Count(); }
public void BindChart(OrganizationChart chart, OrganizationChartTypeViews viewType) { try { this.customOrgChartDetails.BindData(chart); // set chart generation parameters ChartGenerationParameters chartParameters = new ChartGenerationParameters() { ChartType = viewType }; if (viewType == OrganizationChartTypeViews.InProcess) { // get in process chart int chartID = base.CurrentOrgChartID; chartParameters.ID = chartID; this.customDisplayChart.PreviewTitle = this.PreviewTitleInProcess; OrganizationChartPositionCollection positionList = OrganizationChartPositionManager.Instance.GetOrganizationChartPositions(chartID); // pass position list and starting point of the in-process chart this.customDisplayChart.BindChart(chartParameters, positionList.ToList <IChartPosition>(), chart.StartPointWFPPositionID); } else if (viewType == OrganizationChartTypeViews.Published) { int chartLogID = base.CurrentOrgChart.PublishedOrganizationChartLogID; chartParameters.ID = chartLogID; ChartGenerationParametersSessionWrapper.Parameters = chartParameters; this.customDisplayChart.PreviewTitle = this.PreviewTitlePublished; // Load up chart log based on most recent published version OrganizationChartLog chartLog = OrganizationChartLogManager.Instance.GetByID(chartLogID); IList <OrganizationChartPositionLog> positionList = OrganizationChartPositionLogManager.Instance.GetOrganizationChartPositionLogs(chartLogID); // pass position list and starting point OF THE PUBLISHED CHART (not the in-process chart) this.customDisplayChart.BindChart(chartParameters, positionList.ToList <IChartPosition>(), chartLog.StartPointWFPPositionID); } } catch (Exception ex) { base.HandleException(ex); } }
private string DumpFile(OrganizationChart chart) { string HexDump(byte[] data) { if (data.Length == 0) { return("[]"); } var sb = new StringBuilder(); sb.AppendLine("["); sb.Append(" "); for (int i = 0; i < data.Length; i++) { if (i != 0 && (i % 4) == 0) { sb.AppendLine(); sb.Append(" "); } sb.Append($"0x{data[i].ToString("X2")}"); if (i != data.Length - 1) { sb.Append(", "); } } sb.AppendLine(); sb.Append("]"); return(sb.ToString()); } var builder = new StringBuilder(); foreach ((ushort id, byte[] data) in chart.Records) { builder.AppendLine($"Id: {GetName(id)}"); builder.AppendLine($"Data: {HexDump(data)}"); builder.AppendLine(); } return(builder.ToString()); }
public void BindData(OrganizationChart chart) { try { bool containsData = (chart != null); this.Visible = containsData; if (containsData) { setView(); buildLinks(chart); this.customOrgChartValidations.BindData(chart); this.literalAbolishedCount.Text = chart.AbolishedPositionCount == 0 ? "0" : string.Format(GetLocalResourceObject("AbolishedCountLineItem").ToString(), chart.AbolishedPositionCount); this.literalNewFPPSCount.Text = chart.NewFPPSPositionCount.ToString(); this.literalOrganizationChartID.Text = chart.OrganizationChartID.ToString(); this.literalChartType.Text = chart.OrganizationChartTypeName; this.literalOrganizationNameLineItem.Text = chart.OrgCode.NewOrgCodeLine; // chart.OrganizationName; if (chart.StartPointWFPPositionID == -1) { this.literalTopLevelPosition.Text = GetLocalResourceObject("NoRootPositionSpecified").ToString(); } else { this.literalTopLevelPosition.Text = chart.StartPointPositionLineItemFullName; } // only show if there is a published version in the database bool hasPubVersion = (chart.PublishedOrganizationChartLogID != -1); this.linkViewPublishedChart.Visible = hasPubVersion; this.literalNoPublishedChartOnRecord.Visible = !hasPubVersion; } } catch (Exception ex) { base.HandleException(ex); } }
private void loadData() { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; // validation check for base.CurrentOrgChart is in OrgChartRequiredUserControlBase base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue)); customOrgChartDetails.BindData(chart); // show org code section based on chart type bool isSingleChartType = (chart.OrganizationChartTypeID == enumOrgChartType.SingleOrg); this.rowSingleOrgCode.Visible = isSingleChartType; this.rowMultipleOrgCodes.Visible = !isSingleChartType; if (isSingleChartType) { this.literalSingleOrgCode.Text = chart.OrgCode.DetailLine; } else { bindMultipleChildOrgCodes(chart.OrgCode.OrganizationCodeID); } bindPayPlans(); bindFPLAndCurrentGrade(); bindDutyStationCountries(); bindDutyStationStates(); bindPositionTypesSupervisoryStatues(); bindOrgPositionTypes(); bindParentPositions(); bindPositionBoxPlacement(); bindPositionBoxLocationGroupTypes(); // load default values int defaultCountryID = (int)enumCountries.UnitedStates; this.dropDownDutyStationCountries.SelectedValue = defaultCountryID.ToString(); toggleDutyStates(defaultCountryID); this.dropDownOrganizationPositionTypes.SelectedValue = ((int)enumOrgPositionType.FWS_Employee).ToString(); }
private void loadData() { base.RefreshOrgChartDataOnly(); int tempPositionID = -1; bool isOK = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID); if (isOK) { WorkforcePlanningPosition position = WorkforcePlanningPositionManager.Instance.GetAbolishedPositionByID(tempPositionID); if (position.WFPPositionID == -1) { base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString()); } else { OrganizationChart chart = base.CurrentOrgChart; this.EditPositionID = position.WFPPositionID; this.customOrgChartDetails.BindData(chart); this.customFPPSPositionInformation.BindData(position, chart.StartPointWFPPositionID); bool isRoot = (chart.StartPointWFPPositionID == position.WFPPositionID); this.AccessOK = (base.CurrentOrgChartNavMode == enumNavigationMode.Insert || base.CurrentOrgChartNavMode == enumNavigationMode.Edit); bool actionsOK = this.AccessOK && (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review); bool okToSetParents = !isRoot && actionsOK && (position.DirectChildCount > 0); this.panelMapParents.Visible = okToSetParents; this.buttonCancelReadOnly.Visible = !okToSetParents; this.literalDirectChildCount.Text = position.DirectChildCount.ToString(); if (okToSetParents) { bindParentPositions(position.WFPPositionID); } } } else { base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString()); } }
private void DumpChartToTreeView(OrganizationChart chart) { _dumpDirty = false; dumpTreeView.Nodes.Clear(); TreeNode node = dumpTreeView.Nodes.Add("Root"); foreach ((ushort id, byte[] data) in chart.Records) { if (id >= 0x4000) { if (node.Tag is ValueTuple <ushort, byte[]> tag && tag.Item1 == id - 0x2000) { node = node.Parent; } else { node = node.Nodes.Add(GetName(id)); node.Tag = (id, data); } }
private void loadData() { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; int tempPositionID = -1; bool isOK = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID); if (isOK) { OrganizationChartPosition position = OrganizationChartPositionManager.Instance.GetByID(chart.OrganizationChartID, tempPositionID); if (position.WFPPositionID == -1) { base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString()); } else { this.EditPositionID = position.WFPPositionID; base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), position.PositionLineItemFullNameReverse)); this.customOrgChartDetails.BindData(chart); this.literalReportsToPositionTitleLineItem.Text = position.PositionLineItemFullNameReverse; this.literalPrimaryOrgCode.Text = chart.OrgCode.NewOrgCodeLine; this.rowChildOrgCodes.Visible = (chart.OrganizationChartTypeID == enumOrgChartType.MultiOrg); if (chart.OrganizationChartTypeID == enumOrgChartType.MultiOrg) { // bind list of child org codes this.bindMultipleChildOrgCodes(chart.OrgCode.OrganizationCodeID); } // show all positions in primary org code bindAvailablePositions(-1); } } else { base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString()); } }
private void loadData() { if (Request.QueryString[CHARTIDKEY] == null) { printMessage(GetLocalResourceObject("NullIDKey").ToString()); } else { int tempID = -1; bool paramOK = int.TryParse(Request.QueryString[CHARTIDKEY], out tempID); if (!paramOK) { printMessage(GetLocalResourceObject("IDKeyNotAValidInteger").ToString()); } else { OrganizationChart chart = OrganizationChartManager.Instance.GetByID(tempID); if (chart.OrganizationChartID == -1) { printMessage(GetLocalResourceObject("IDNotFoundMessage").ToString()); } else { this.customDisplayChart.Visible = true; this.Page.Title = string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue); IList <OrganizationChartPosition> positionList = OrganizationChartPositionManager.Instance.GetOrganizationChartPositions(chart.OrganizationChartID); ChartGenerationParameters genParams = new ChartGenerationParameters() { ID = chart.OrganizationChartID, ChartType = OrganizationChartTypeViews.InProcess }; this.customDisplayChart.BindChart(genParams, positionList.ToList <IChartPosition>(), chart.StartPointWFPPositionID); } } } }
private void loadData(OrganizationChartPosition position) { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; customOrgChartDetails.BindData(chart); bool isActiveEmployee = (position.PositionStatusHistory.HasValue && position.PositionStatusHistory.Value == (int)enumOrgPositionStatusHistoryType.ActiveEmployee); if (isActiveEmployee) { base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), position.PositionLineItemFullName)); } else { base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), string.Format("{0} {1}", position.PositionTitle, GetLocalResourceObject("VacantWordPhrase").ToString()))); } // This is a nested control and as such, the use is a little different from the other user controls -- we need to check read/write permission here // This is because we load this control by an explicit Bind -- not in page load this.OriginalReportsToID = position.ReportsToID; bool isRoot = (position.WFPPositionID == base.CurrentOrgChart.StartPointWFPPositionID); this.AccessOK = (base.CurrentOrgChartNavMode == enumNavigationMode.Insert || base.CurrentOrgChartNavMode == enumNavigationMode.Edit); bool actionsOK = this.AccessOK && (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review); this.buttonDeletePosition.Visible = actionsOK && (position.DirectChildCount == 0) && !isRoot; this.buttonSave.Visible = actionsOK; // show org code section based on chart type bool isSingleChartType = (chart.OrganizationChartTypeID == enumOrgChartType.SingleOrg); this.rowSingleOrgCode.Visible = isSingleChartType; this.rowMultipleOrgCodes.Visible = !isSingleChartType; if (isSingleChartType) { this.literalSingleOrgCode.Text = chart.OrgCode.DetailLine; } else { bindMultipleChildOrgCodes(chart.OrgCode.OrganizationCodeID); this.dropDownMultipleOrgCodes.SelectedValue = position.OrganizationCodeID.ToString(); } // load all other data fields this.textboxPositionTitle.Text = position.PositionTitle; this.panelPositionNameInner.Visible = isActiveEmployee; this.checkboxIsEncumbered.Checked = isActiveEmployee; if (isActiveEmployee) { this.textboxFirstName.Text = position.FirstName; this.textboxMiddleName.Text = position.MiddleName; this.textboxLastName.Text = position.LastName; } this.dropDownPayPlan.SelectedValue = position.PayPlanID.ToString(); bindSeries(position.PayPlanID); this.dropDownSeries.SelectedValue = position.SeriesID.ToString(); this.dropDownFPLGrades.SelectedValue = position.FPLGrade.ToString(); this.dropDownCurrentGrades.SelectedValue = position.Grade.ToString(); bool isUS = position.DutyStationCountryID == (int)enumCountries.UnitedStates; this.dropDownDutyStationCountries.SelectedValue = position.DutyStationCountryID.ToString(); this.rowDutyStationState.Visible = isUS; if (isUS) { this.dropDownDutyStationStates.SelectedValue = position.DutyStationStateID.ToString(); } this.textboxDutyStationCity.Text = position.DutyStationDescription; this.dropDownPositionTypesSupervisoryStatuses.SelectedValue = position.SupervisoryStatus.ToString(); this.dropDownOrganizationPositionTypes.SelectedValue = ((int)position.eOrgPositionType).ToString(); // in theory -- the root should not be a WFP, but would rather be safe bool isTopLevelEditOk = (base.HasHRGroupPermission || base.IsAdmin) || !isRoot; this.TopLevelEditOK = isTopLevelEditOk; this.rowReportsToPositionRoot.Visible = !isTopLevelEditOk; this.rowReportsToPositionUpdate.Visible = isTopLevelEditOk; this.requiredParentPosition.Enabled = !isRoot; // parent position is required for all positions except the root node this.spanPositionRequired.Visible = !isRoot; // hide the required asterisk "*" this.rowLocationGroupType.Visible = !isRoot; this.rowPlacementType.Visible = !isRoot; if (isTopLevelEditOk) { if (position.ReportsToID != -1) { this.dropDownParentPositions.SelectedValue = position.ReportsToID.ToString(); } } else { literalReportsToPosition.Text = position.ReportsToFullNameReverse; } if (!isRoot) { this.dropDownPositionPlacements.SelectedValue = ((int)position.PositionPlacementType).ToString(); this.dropDownPositionLocationGroupTypes.SelectedValue = ((int)position.PositionGroupType).ToString(); } }
/// <summary> /// 设置 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAdd_Click(object sender, EventArgs e) { var opStatus = Convert.ToString(ViewState["OpStatus"]); OrganizationChart user; try { var result = Validation(); if (!result) return; if (opStatus == "Add") { user = new OrganizationChart(); } else { var guidId = (Guid)ViewState["Id"]; user = _organizationManagementService.GetOrganizationByDid(guidId); } DataBindHelper<OrganizationChart>.GetDaTa(form1, user); if (rbtnOrganizationType.SelectedValue == "1") { var parentDid = dropParentDID.SelectedValue; user.ParentDID = new Guid(parentDid); } else { user.ParentDID = null; } } catch (Exception ce) { errorDesc.Text = ce.Message; return; } try { if (opStatus == "Add") { user.DID= Guid.NewGuid(); user.CreateTime = DateTime.Now; if (rbtnOrganizationType.SelectedValue=="1") { user.ParentDID = new Guid(dropParentDID.SelectedValue); } else { user.ParentDID = null; } _organizationManagementService.Add(user); } else { _organizationManagementService.Modify(user); } errorDesc.Text =@"操作成功!"; } catch(Exception ex) { errorDesc.Text = ex.Message.Contains("组织编号") ? ex.Message : @"操作失败!"; } }
private void buttonSave_Click(object sender, EventArgs e) { try { if (Page.IsValid) { int newOrgChartID = -1; OrganizationChart newChart = new OrganizationChart() { OrganizationChartTypeID = (enumOrgChartType)int.Parse(this.dropDownChartTypes.SelectedValue), OrgCode = new OrganizationCode() { OrganizationCodeID = ControlUtility.GetDropdownValue(this.dropDownOrganizationCodes, "-1") }, CreatedBy = new ActionUser(base.CurrentUserID) }; if (this.SelectedCreationType == CreationType.NewFromTemplate) { // create org chart from template newOrgChartID = OrganizationChartManager.Instance.CreateFromPublished(newChart, true); // set new org chart ID base.ResetCurrentOrgChart(newOrgChartID); // load newly created organization chart base.GoToOrgChartLink("~/OrgChart/OrgChartDetails.aspx", enumNavigationMode.Edit); } else if (this.SelectedCreationType == CreationType.New) { // create NEW org chart RootNodeMode selectedMode = (RootNodeMode)int.Parse(this.radioListRootNode.SelectedValue); // set root node (if mode is "SELECT") -- default action is to "Create New WFP" if no starting point is specified if (selectedMode == RootNodeMode.SelectNode) { newChart.StartPointWFPPositionID = ControlUtility.GetDropdownValue(this.dropDownRootPositions, "-1"); } newOrgChartID = OrganizationChartManager.Instance.CreateNew(newChart, true); // set new org chart ID base.ResetCurrentOrgChart(newOrgChartID); if (selectedMode == RootNodeMode.SelectNode) { // load newly created organization chart base.GoToOrgChartLink("~/OrgChart/OrgChartDetails.aspx", enumNavigationMode.Edit); } else { // allow user to immediately edit root node base.GoToOrgChartLink(string.Format("~/OrgChart/UpdateChartPosition.aspx?editPosID={0}", newChart.StartPointWFPPositionID), enumNavigationMode.Edit); } } } } catch (NoPublishedChartAvailableException) { base.PrintErrorMessage(GetLocalResourceObject("NoPublishedChartExceptionMessage").ToString(), true); } catch (ChartAlreadyInProgressException) { base.PrintErrorMessage(GetLocalResourceObject("InProgressChartExceptionMessage").ToString(), true); } catch (Exception ex) { base.HandleException(ex); } }
protected void rgSearchResults_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { try { HideRefreshButton(e); GridDataItem dataItem = e.Item as GridDataItem; if (dataItem.ItemType == GridItemType.Item || dataItem.ItemType == GridItemType.AlternatingItem || dataItem.ItemType == GridItemType.SelectedItem) { OrgChartSearchResult searchResult = (OrgChartSearchResult)e.Item.DataItem; Image imgORGCHARTCheckedOutStatus = dataItem.FindControl("imgORGCHARTCheckedOutStatus") as Image; imgORGCHARTCheckedOutStatus.Visible = false; string checkedoutdt = string.Empty; string editedBy = string.Empty; #region [ Action menu/ Document Menu] //Action Menu RadMenu menuAction = dataItem.FindControl("rmOrgChartMenuAction") as RadMenu; RadMenuItem viewMenuItem = menuAction.FindItemByValue("View"); RadMenuItem viewPublishedMenuItem = menuAction.FindItemByValue("ViewPublished"); RadMenuItem editMenuItem = menuAction.FindItemByValue("Edit"); RadMenuItem continueMenuItem = menuAction.FindItemByValue("ContinueEdit"); RadMenuItem finishMenuItem = menuAction.FindItemByValue("FinishEdit"); RadMenuItem deleteMenuItem = menuAction.FindItemByValue("Delete"); //Document Menu RadMenu menuDocument = dataItem.FindControl("rmDocument") as RadMenu; RadMenuItem InProcessPDFMenuItem = menuDocument.FindItemByValue("1"); RadMenuItem PublishedPDFMenuItem = menuDocument.FindItemByValue("2"); if (searchResult.IsCheckedOut) { // At this point, we know this has to be an OrgChart because it is checked out // But let's be safe if (searchResult.ChartEntity is OrganizationChart) { OrganizationChart chart = searchResult.ChartEntity as OrganizationChart; if (chart != null) { if (chart.CheckedOutBy.ActionDate.HasValue) { checkedoutdt = string.Format(chart.CheckedOutBy.ActionDate.Value.ToString(), "d"); editedBy = String.Format("Being edited by {0} since {1}", chart.CheckedOutBy.FullName, checkedoutdt); imgORGCHARTCheckedOutStatus.Visible = true; } if (chart.CheckedOutBy.UserID == base.CurrentUserID) { imgORGCHARTCheckedOutStatus.ImageUrl = Page.ResolveUrl(String.Format("~/App_Themes/{0}/Images/Icons/icon_unlock.gif", Page.Theme)); } else { imgORGCHARTCheckedOutStatus.ImageUrl = Page.ResolveUrl(String.Format("~/App_Themes/{0}/Images/Icons/icon_lock.gif", Page.Theme)); imgORGCHARTCheckedOutStatus.ToolTip = editedBy; dataItem.ToolTip = editedBy; } } } } //Action Menu visibility deleteMenuItem.Visible = searchResult.CanDelete; editMenuItem.Visible = searchResult.CanEdit; finishMenuItem.Visible = searchResult.CanFinishEdit; continueMenuItem.Visible = searchResult.CanContinueEdit; //Action/Document Menu visibility and data field setting if (searchResult.ChartEntity is OrganizationChartLog) { OrganizationChartLog orgchartlog = (OrganizationChartLog)searchResult.ChartEntity; menuAction.DataFieldID = orgchartlog.OrganizationChartLogID.ToString(); menuAction.Attributes["OrganizationChartLogID"] = orgchartlog.OrganizationChartLogID.ToString(); viewPublishedMenuItem.Visible = true; viewMenuItem.Visible = false; menuDocument.DataFieldID = orgchartlog.OrganizationChartLogID.ToString(); menuDocument.Attributes["OrganizationChartLogID"] = orgchartlog.OrganizationChartLogID.ToString(); menuDocument.Attributes["OrganizationChartID"] = string.Empty; //this is for Export to excel menuDocument.Attributes["OrgChartID"] = orgchartlog.OrganizationChartID.ToString(); PublishedPDFMenuItem.Visible = true; InProcessPDFMenuItem.Visible = false; } else { menuAction.DataFieldID = searchResult.ChartEntity.OrganizationChartID.ToString(); menuAction.Attributes["OrganizationChartID"] = searchResult.ChartEntity.OrganizationChartID.ToString(); viewPublishedMenuItem.Visible = false; if ((searchResult.ChartEntity is OrganizationChart) && (!searchResult.CanContinueEdit)) { viewMenuItem.Visible = true; } else { viewMenuItem.Visible = false; } menuDocument.DataFieldID = searchResult.ChartEntity.OrganizationChartID.ToString(); menuDocument.Attributes["OrganizationChartID"] = searchResult.ChartEntity.OrganizationChartID.ToString(); menuDocument.Attributes["OrganizationChartLogID"] = string.Empty; //this is for Export to excel menuDocument.Attributes["OrgChartID"] = searchResult.ChartEntity.OrganizationChartID.ToString(); InProcessPDFMenuItem.Visible = true; PublishedPDFMenuItem.Visible = false; } #endregion } } catch (Exception ex) { base.HandleException(ex); } } }
private void loadData() { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; if (chart.OrganizationChartID == -1) { base.PrintErrorMessage(GetLocalResourceObject("OrganizationChartNotFoundMessage").ToString()); } else { // load data base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue)); this.customOrgChartDetails.BindData(chart); // set workflow button view setView(chart); string mailAddressLineItem = GetLocalResourceObject("NullMailAddressLineItem").ToString(); if (chart.OrgCode != null && (!string.IsNullOrWhiteSpace(chart.OrgCode.MailCity) || !string.IsNullOrWhiteSpace(chart.OrgCode.MailStateAbbr))) { if (string.IsNullOrWhiteSpace(chart.OrgCode.MailCity)) { // MailCity is null -- use State mailAddressLineItem = chart.OrgCode.MailStateAbbr; } else if (string.IsNullOrWhiteSpace(chart.OrgCode.MailStateAbbr)) { // MailState is null -- use city mailAddressLineItem = chart.OrgCode.MailCity; } else { // use both mailAddressLineItem = string.Format("{0}, {1}", chart.OrgCode.MailCity, chart.OrgCode.MailStateAbbr); } } this.literalOrgCodeLocation.Text = mailAddressLineItem; string topPositionLineItem = string.Empty; if (chart.StartPointWFPPositionID == -1) { topPositionLineItem = GetLocalResourceObject("NoTopLevelPositionMessage").ToString(); } else { topPositionLineItem = chart.StartPointPositionLineItemFullName; } this.literalTopLevelPosition.Text = topPositionLineItem; this.literalWorkflowStatus.Text = chart.OrgWorkflowStatusName; if (chart.CreatedBy != null) { bool hasCreatedByName = !string.IsNullOrWhiteSpace(chart.CreatedBy.FullName); this.rowCreatedOn.Visible = chart.CreatedBy.ActionDate.HasValue; this.rowCreatedBy.Visible = hasCreatedByName; if (chart.CreatedBy.ActionDate.HasValue) { this.literalCreatedDate.Text = chart.CreatedBy.ActionDate.Value.ToString(); } if (hasCreatedByName) { this.literalCreatedByFullName.Text = chart.CreatedBy.FullName; } } if (chart.CheckedOutBy != null) { bool hasCheckedOutInfo = chart.CheckedOutBy.ActionDate.HasValue && !string.IsNullOrWhiteSpace(chart.CheckedOutBy.FullName); this.rowCheckedOut.Visible = hasCheckedOutInfo; if (hasCheckedOutInfo) { this.literalCheckedOutBy.Text = string.Format(GetLocalResourceObject("CheckedOutLineMessage").ToString(), chart.CheckedOutBy.FullName, chart.CheckedOutBy.ActionDate.Value.ToString()); } } if (chart.UpdatedBy != null) { bool hasLastUpdatedName = !string.IsNullOrWhiteSpace(chart.UpdatedBy.FullName); this.rowUpdatedOn.Visible = chart.UpdatedBy.ActionDate.HasValue; this.rowUpdatedBy.Visible = hasLastUpdatedName; if (chart.UpdatedBy.ActionDate.HasValue) { this.literalLastUpdated.Text = chart.UpdatedBy.ActionDate.Value.ToString(); } if (hasLastUpdatedName) { this.literalLastUpdatedBy.Text = chart.UpdatedBy.FullName; } } } }
private void loadData(IWorkforcePlanningPosition position) { base.RefreshOrgChartDataOnly(); OrganizationChart chart = base.CurrentOrgChart; bool tempIsChartPosition = position is OrganizationChartPosition; this.IsChartPosition = tempIsChartPosition; this.customOrgChartDetails.BindData(chart); this.customOrgChartDetails.RedirectSuffix = tempIsChartPosition ? "pos" : "newfpps"; this.customFPPSPositionInformation.BindData(position, chart.StartPointWFPPositionID); if (position.PositionStatusHistory.HasValue && position.PositionStatusHistory.Value == (int)enumOrgPositionStatusHistoryType.ActiveEmployee) { base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), position.PositionLineItemFullName)); } else { base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), string.Format("{0} {1}", position.PositionTitle, GetLocalResourceObject("VacantWordPhrase").ToString()))); } // This is a nested control and as such, the use is a little different from the other user controls -- we need to check read/write permission here // This is because we load this control by an explicit Bind -- not in page load this.OriginalReportsToID = position.ReportsToID; this.AccessOK = (base.CurrentOrgChartNavMode == enumNavigationMode.Insert || base.CurrentOrgChartNavMode == enumNavigationMode.Edit); bool actionsOK = this.AccessOK && (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review); bool isRoot = (position.WFPPositionID == base.CurrentOrgChart.StartPointWFPPositionID); bool isTopLevelEditOk = (base.HasHRGroupPermission || base.IsAdmin) || !isRoot; this.TopLevelEditOK = isTopLevelEditOk; this.buttonIncludePosition.Visible = actionsOK && !tempIsChartPosition; this.buttonUpdatePosition.Visible = actionsOK && tempIsChartPosition; this.rowReportsToPositionRoot.Visible = !isTopLevelEditOk; this.rowReportsToPositionUpdate.Visible = isTopLevelEditOk; this.requiredParentPosition.Enabled = !isRoot; // parent position is required for all positions except the root node this.spanPositionRequired.Visible = !isRoot; // hide the required asterisk "*" this.rowLocationGroupType.Visible = !isRoot; this.rowPlacementType.Visible = !isRoot; this.dropDownOrganizationPositionTypes.SelectedValue = ((int)position.eOrgPositionType).ToString(); if (isTopLevelEditOk) { if (position.ReportsToID != -1) { this.dropDownParentPositions.SelectedValue = position.ReportsToID.ToString(); } } else { literalReportsToPosition.Text = position.ReportsToFullNameReverse; } if (tempIsChartPosition && !isRoot) { // only set if this is a chart position AND it is not the root node position OrganizationChartPosition chartPosition = position as OrganizationChartPosition; this.dropDownPositionPlacements.SelectedValue = ((int)chartPosition.PositionPlacementType).ToString(); this.dropDownPositionLocationGroupTypes.SelectedValue = ((int)chartPosition.PositionGroupType).ToString(); } }
public List <OrgChartSearchResult> LoadSearchResults(int userID, int?organizationChartID = null, int?organizationChartTypeID = null, int?organizationCodeID = null, enumOrgWorkflowStatus orgChartWorkflowStatusID = enumOrgWorkflowStatus.Undefined, int?regionID = null, string authorName = null, string approverName = null, int?publishedYear = null, int?seriesID = null, string employeeName = null) { List <OrgChartSearchResult> searchResults = new List <OrgChartSearchResult>(); if (userID <= 0) { throw new BusinessException("UserID must be provided."); } else if (organizationChartID == null && organizationChartTypeID == null && organizationCodeID == null && orgChartWorkflowStatusID == enumOrgWorkflowStatus.Undefined && regionID == null && string.IsNullOrEmpty(authorName) && string.IsNullOrEmpty(approverName) && publishedYear == null && seriesID == null && string.IsNullOrEmpty(employeeName)) { throw new BusinessException("No search criteria provided. At least one expected."); } else { try { DbCommand commandWrapper = GetDbCommand("spr_SearchOrganizationCharts"); commandWrapper.Parameters.Add(new SqlParameter("@UserID", userID)); if (organizationChartID.HasValue) { commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartID", organizationChartID.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartID", DBNull.Value)); } if (organizationChartTypeID.HasValue) { commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartTypeID", organizationChartTypeID.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartTypeID", DBNull.Value)); } if (organizationCodeID.HasValue) { commandWrapper.Parameters.Add(new SqlParameter("@OrganizationCodeID", organizationCodeID.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@OrganizationCodeID", DBNull.Value)); } if (orgChartWorkflowStatusID == enumOrgWorkflowStatus.Undefined) { commandWrapper.Parameters.Add(new SqlParameter("@OrgChartWorkflowStatusID", DBNull.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@OrgChartWorkflowStatusID", (int)orgChartWorkflowStatusID)); } if (regionID.HasValue) { commandWrapper.Parameters.Add(new SqlParameter("@RegionID", regionID.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@RegionID", DBNull.Value)); } if (string.IsNullOrWhiteSpace(authorName)) { commandWrapper.Parameters.Add(new SqlParameter("@AuthorName", DBNull.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@AuthorName", authorName.Trim())); } if (string.IsNullOrWhiteSpace(approverName)) { commandWrapper.Parameters.Add(new SqlParameter("@ApprovedByName", DBNull.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@ApprovedByName", approverName.Trim())); } if (publishedYear.HasValue) { commandWrapper.Parameters.Add(new SqlParameter("@PublishedYear", publishedYear.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@PublishedYear", DBNull.Value)); } if (seriesID.HasValue) { commandWrapper.Parameters.Add(new SqlParameter("@SeriesID", seriesID.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@SeriesID", DBNull.Value)); } if (string.IsNullOrWhiteSpace(employeeName)) { commandWrapper.Parameters.Add(new SqlParameter("@EmployeeName", DBNull.Value)); } else { commandWrapper.Parameters.Add(new SqlParameter("@EmployeeName", employeeName.Trim())); } // get data set DataSet ds = ExecuteDataSet(commandWrapper); if (ds.Tables.Count > 0) { // Table 0: OrganizationChart records if (ds.Tables[0] != null) { DataTable tableOC = ds.Tables[0]; OrganizationChartDataAdapter OCAdapter = new OrganizationChartDataAdapter(); foreach (DataRow dr in tableOC.Rows) { OrgChartSearchResult resultItem = getSearchResultObject(dr); OrganizationChart chart = new OrganizationChart(); OCAdapter.Fill(dr, chart); resultItem.ChartEntity = chart; // OrganizationChartManager.Instance.BuildFromDataRow(dr); searchResults.Add(resultItem); } } // Table 1: OrganizationChartLog records if (ds.Tables[1] != null) { DataTable tableOCL = ds.Tables[1]; OrganizationChartLogDataAdapter OCLAdapter = new OrganizationChartLogDataAdapter(); foreach (DataRow dr in tableOCL.Rows) { OrgChartSearchResult resultItem = getSearchResultObject(dr); OrganizationChartLog chartLog = new OrganizationChartLog(); OCLAdapter.Fill(dr, chartLog); resultItem.ChartEntity = chartLog; // OrganizationChartLogManager.Instance.BuildFromDataRow(dr); searchResults.Add(resultItem); } } } } catch (Exception ex) { HandleException(ex); } } return(searchResults); }
private void setView(OrganizationChart chart, int tempPositionID) { if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Undefined || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Published) { this.gridPositions.Columns[0].Visible = false; // Exclude Column this.gridPositions.Columns[1].Visible = false; // Include Column this.buttonAddNewWFP.Visible = false; // Add New WFP button } bool showDrillDown = (tempPositionID != -1); this.panelDrillUp.Visible = showDrillDown; if (showDrillDown) { // 1. load position and see if it is valid // 2. set this.DrillPositionID // 3. check to see if it is broken hierarchy // 4. load reports to ID OrganizationChartPosition testPosition = OrganizationChartPositionManager.Instance.GetByID(base.CurrentOrgChartID, tempPositionID); if (testPosition.WFPPositionID == -1) { base.PrintErrorMessage(GetLocalResourceObject("DrillPositionIDNotFoundInChartMessage").ToString()); } else { // 2. set this.DrillPositionID this.DrillPositionID = tempPositionID; // show drill down position name/title if (testPosition.PositionStatusHistory.HasValue && testPosition.PositionStatusHistory.Value == (int)enumOrgPositionStatusHistoryType.ActiveEmployee && !string.IsNullOrWhiteSpace(testPosition.FullName)) { this.literalDrillPositionDetails.Text = string.Format("{0} ({1})", testPosition.FullName, testPosition.PositionTitle); } else { this.literalDrillPositionDetails.Text = string.Format("{0} ({1})", _FPPSVacancyWordPhrase, testPosition.PositionTitle); } // 3. check to see if it is broken hierarchy // 4. load reports to ID (if not -1) bool showUpOneLevel = testPosition.IsInChartHierarchy && testPosition.ReportsToID != -1; bool isCurrentPositionRoot = (testPosition.WFPPositionID == chart.StartPointWFPPositionID); if (showUpOneLevel) { string upOneLevelURL = string.Empty; if (isCurrentPositionRoot) { // this is the root node of the chart -- next is to show all positions upOneLevelURL = "~/OrgChart/OrgChartPositions.aspx#positionlist"; } else { upOneLevelURL = string.Format("~/OrgChart/OrgChartPositions.aspx?posID={0}#positionlist", testPosition.ReportsToID); } this.linkDrillUpOneLevel.NavigateUrl = upOneLevelURL; this.linkDrillUpOneLevelArrow.NavigateUrl = upOneLevelURL; } this.tdDrillUpOneLevel.Visible = showUpOneLevel && !isCurrentPositionRoot; this.tdDrillUpOneLevelArrow.Visible = showUpOneLevel && !isCurrentPositionRoot; this.tdDrillUpOneLevelArrowDisabled.Visible = !testPosition.IsInChartHierarchy; this.tdDrillUpOneLevelDisabled.Visible = !testPosition.IsInChartHierarchy; } } }