コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
                }
            }
        }