private OrgChartSearchResult getSearchResultObject(DataRow dataRow) { OrgChartSearchResult resultItem = new OrgChartSearchResult(); try { if (dataRow["CanEdit"] != DBNull.Value) { resultItem.CanEdit = (bool)dataRow["CanEdit"]; } if (dataRow["CanDelete"] != DBNull.Value) { resultItem.CanDelete = (bool)dataRow["CanDelete"]; } if (dataRow["CanContinueEdit"] != DBNull.Value) { resultItem.CanContinueEdit = (bool)dataRow["CanContinueEdit"]; } if (dataRow["CanFinishEdit"] != DBNull.Value) { resultItem.CanFinishEdit = (bool)dataRow["CanFinishEdit"]; } if (dataRow["CanViewOnly"] != DBNull.Value) { resultItem.CanViewOnly = (bool)dataRow["CanViewOnly"]; } if (dataRow["IsCheckedOut"] != DBNull.Value) { resultItem.IsCheckedOut = (Convert.ToInt32(dataRow["IsCheckedOut"]) == 1); } } catch (Exception ex) { HandleException(ex); } return(resultItem); }
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); }
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); } } }