/// <summary> /// 메뉴 관리 신규 데이터 저장 /// </summary> /// <param name="_da">데이터베이스 엑세스 객체</param> /// <param name="_item">신규 저장 대상 데이터</param> /// <returns></returns> private async Task <bool> Save_SP_MENU_INS(BaseDataAccess _da, MenuMgmt _item) { bool isRtnValue = true; #region + 파라메터 변수 선언 및 값 할당 DataTable dtRtnValue = null; var strProcedureName = "UI_C1003_MENU_INS"; Dictionary <string, object> dicInputParam = new Dictionary <string, object>(); Dictionary <object, BaseEnumClass.MSSqlOutputDataType> dicOutPutParam = new Dictionary <object, BaseEnumClass.MSSqlOutputDataType>(); Dictionary <object, object> dicRtnValue = new Dictionary <object, object>(); var strMenuID = _item.MENU_ID; // 메뉴 ID var strMenuNM = _item.MENU_NM; // 메뉴명 var strMenuDesc = _item.MENU_DESC; // 메뉴 상세 var strMenuLevel = _item.MENU_LVL; // 메뉴 레벨 var strMenuType = _item.MENU_TYPE; // 메뉴 타입 var strMenuUrl = _item.MENU_URL; // 메뉴 URL var strMenuIcon = _item.MENU_ICON; // 메뉴 아이콘 var strTreeID = _item.TREE_ID; // 트리 ID var strParentID = _item.PARENT_ID; // 상위 메뉴 ID var strUseYN = _item.USE_YN_CHECKED == true ? "Y" : "N"; // 사용여부 var iSortSeq = _item.SORT_SEQ; // 정렬 순서 var strUserID = this.BaseClass.UserID; // 사용자 ID #endregion #region + Input 파라메터 dicInputParam.Add("MENU_ID", strMenuID); // 메뉴 ID dicInputParam.Add("MENU_NM", strMenuNM); // 메뉴명 dicInputParam.Add("MENU_DESC", strMenuDesc); // 메뉴 상세 dicInputParam.Add("MENU_LVL", strMenuLevel); // 메뉴 레벨 dicInputParam.Add("MENU_TYPE", strMenuType); // 메뉴 타입 dicInputParam.Add("MENU_URL", strMenuUrl); // 메뉴 URL dicInputParam.Add("MENU_ICON", strMenuIcon); // 메뉴 아이콘 dicInputParam.Add("TREE_ID", strTreeID); // 트리 ID dicInputParam.Add("PARENT_ID", strParentID); // 상위 메뉴 ID dicInputParam.Add("USE_YN", strUseYN); // 사용여부 dicInputParam.Add("SORT_SEQ", iSortSeq); // 정렬 순서 dicInputParam.Add("L_USER_ID", strUserID); // 사용자 ID #endregion #region + Output 파라메터 dicOutPutParam.Add("RTN_VAL", BaseEnumClass.MSSqlOutputDataType.INT32); dicOutPutParam.Add("RTN_MSG", BaseEnumClass.MSSqlOutputDataType.VARCHAR); #endregion #region + 데이터 조회 await System.Threading.Tasks.Task.Run(() => { dtRtnValue = _da.GetSpDataTable(strProcedureName, dicInputParam, dicOutPutParam, ref dicRtnValue); }).ConfigureAwait(true); #endregion if (dicRtnValue["RTN_VAL"].ToString().Equals("0") == false) { var strMessage = dicRtnValue["RTN_MSG"].ToString(); this.BaseClass.MsgError(strMessage, BaseEnumClass.CodeMessage.MESSAGE); isRtnValue = false; } return(isRtnValue); }
/// <summary> /// (행추가) ContextMenu 이벤트 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MenuItemRowAdd_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { try { string strSelectedMenuID = (this.treeListControl.SelectedItem as MenuMgmt).MENU_ID; // 메뉴 ID string strSelectedTreeID = (this.treeListControl.SelectedItem as MenuMgmt).TREE_ID; // 트리 ID var iSelectedMenuLevel = (this.treeListControl.SelectedItem as MenuMgmt).MENU_LVL; // 메뉴 레벨 var strSelectedNewRowYN = (this.treeListControl.SelectedItem as MenuMgmt).IsNew; // 신규 여부 // 신규 추가된 Row의 경우 하위 Row를 추가하지 않기 때문에 // isNew가 true인 경우 구문을 리턴한다. if (strSelectedNewRowYN == true) { return; } var liFilterData = this.MenuMgntList.Where(p => p.PARENT_ID.Equals(strSelectedTreeID) == true).ToList(); int i = 0; foreach (var item in this.MenuMgntList) { if (item.MENU_ID.Equals(strSelectedMenuID) == true) { break; } i++; } string strTreeIDFirst = string.Empty; string strTreeID = string.Empty; int iTreeIDSecond = 0; int iSortSeq = 0; if (liFilterData.Count > 0) { strTreeID = liFilterData.OrderByDescending(p => p.TREE_ID).FirstOrDefault().TREE_ID; iSortSeq = liFilterData.OrderByDescending(p => p.SORT_SEQ).FirstOrDefault().SORT_SEQ + 1; strTreeIDFirst = strTreeID.Substring(0, strTreeID.Length - 2); iTreeIDSecond = Convert.ToInt32(strTreeID.Substring(strTreeID.Length - 2, 2)) + 1; strTreeID = $"{strTreeIDFirst}{iTreeIDSecond.ToString("D2")}"; } else { iSortSeq = 1; strTreeID = $"{strSelectedTreeID}01"; } var newItem = new MenuMgmt { MENU_ID = string.Empty // 메뉴 ID , MENU_NM = string.Empty // 메뉴명 , MENU_DESC = string.Empty // 메뉴 상세 , MENU_LVL = iSelectedMenuLevel + 1 // 메뉴 레벨 , MENU_TYPE = string.Empty // 메뉴 타입 , MENU_URL = string.Empty // 메뉴 URL , MENU_ICON = string.Empty // 메뉴 아이콘 , TREE_ID = strTreeID // 트리 ID , PARENT_ID = strSelectedTreeID // 상위 메뉴 ID , USE_YN = "Y" // 사용 여부 , SORT_SEQ = iSortSeq // 정렬 순서 , IsSelected = true , IsNew = true , IsUpdate = false }; this.MenuMgntList.Add(newItem); this.treeListControl.Focus(); this.treeListControl.CurrentColumn = this.treeListControl.Columns.First(); this.treeListControl.View.FocusedRowHandle = this.MenuMgntList.Count - 1; this.MenuMgntList[this.MenuMgntList.Count - 1].BackgroundBrush = new SolidColorBrush(Colors.GhostWhite); this.MenuMgntList[this.MenuMgntList.Count - 1].BaseBackgroundBrush = new SolidColorBrush(Colors.GhostWhite); #region 추가된 트리의 상위 메뉴 ID로 포커스를 이동하기 위한 구문 int j = 0; for (j = 0; j < this.treeListControl.VisibleRowCount; j++) { var rowData = this.treeListControl.GetRow(j); var strMenuID = ((SMART.WCS.UI.COMMON.DataMembers.C1003.MenuMgmt)rowData).MENU_ID; if (strSelectedMenuID.Equals(strMenuID) == true) { break; } } this.BaseClass.SetTreeListControlRowAddFocus(this.treeListControl, j); #endregion this.treeListView.ExpandAllNodes(); } catch (Exception err) { this.BaseClass.Error(err); } }
/// <summary> /// 메뉴 관리 데이터 수정 /// </summary> /// <param name="_da"></param> /// <param name="_item"></param> /// <returns></returns> private async Task <bool> UpdateSP_MENU_UPD(BaseDataAccess _da, MenuMgmt _item) { bool isRtnValue = true; #region + 파라메터 변수 선언 및 값 할당 DataTable dtRtnValue = null; var strProcedureName = "PK_C1004.SP_MENU_UPD"; Dictionary <string, object> dicInputParam = new Dictionary <string, object>(); string[] arrOutputParam = { "O_RSLT" }; var strCenterCD = this.BaseClass.CenterCD; // 센터코드 var strMenuID = _item.MENU_ID; // 메뉴 ID var strMenuNM = _item.MENU_NM; // 메뉴명 var strMenuDesc = string.IsNullOrWhiteSpace(_item.MENU_DESC); // 메뉴 상세 var strMenuType = _item.MENU_TYPE; // 메뉴 타입 var strMenuUrl = _item.MENU_URL; // 메뉴 URL var strMenuIcon = _item.MENU_ICON; // 메뉴 아이콘 //var strParentID = _item.PARENT_ID; // 상위 메뉴 ID var strUseYN = _item.USE_YN_CHECKED == true ? "Y" : "N"; // 사용여부 var strSortSeq = _item.SORT_SEQ.ToString(); // 정렬 순서 var strUserID = this.BaseClass.UserID; // 사용자 ID #endregion #region + Input 파라메터 dicInputParam.Add("P_CNTR_CD", strCenterCD); // 센터코드 dicInputParam.Add("P_MENU_ID", strMenuID); // 메뉴 ID dicInputParam.Add("P_MENU_NM", strMenuNM); // 메뉴명 dicInputParam.Add("P_MENU_DESC", strMenuDesc); // 메뉴 상세 dicInputParam.Add("P_MENU_TYPE", strMenuType); // 메뉴 타입 dicInputParam.Add("P_MENU_URL", strMenuUrl); // 메뉴 URL dicInputParam.Add("P_MENU_ICON", strMenuIcon); // 메뉴 아이콘 //dicInputParam.Add("P_PARENT_ID", strParentID); // 상위 메뉴 ID dicInputParam.Add("P_USE_YN", strUseYN); // 사용여부 dicInputParam.Add("P_SORT_SEQ", strSortSeq); // 정렬 순서 dicInputParam.Add("P_USER_ID", strUserID); // 사용자 ID #endregion #region + 데이터 조회 await System.Threading.Tasks.Task.Run(() => { dtRtnValue = _da.GetSpDataTable(strProcedureName, dicInputParam, arrOutputParam); }).ConfigureAwait(true); #endregion if (dtRtnValue != null) { if (dtRtnValue.Rows.Count > 0) { if (dtRtnValue.Rows[0]["CODE"].ToString().Equals("0") == false) { var strMessage = dtRtnValue.Rows[0]["MSG"].ToString(); this.BaseClass.MsgError(strMessage, BaseEnumClass.CodeMessage.MESSAGE); isRtnValue = false; } } else { // ERR_SAVE - 저장 중 오류가 발생했습니다. this.BaseClass.MsgError("ERR_SAVE"); isRtnValue = false; } } return(isRtnValue); }