|  |  |  | 
|---|
|  |  |  | using Newtonsoft.Json.Linq; | 
|---|
|  |  |  | using Newtonsoft.Json; | 
|---|
|  |  |  | using Newtonsoft.Json.Linq; | 
|---|
|  |  |  | using Pub_Class; | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using System.Collections; | 
|---|
|  |  |  | 
|---|
|  |  |  | DataSet ds; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// 返回系统用户列表 | 
|---|
|  |  |  | ///参数:string sql。 | 
|---|
|  |  |  | ///返回值:object。 | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | #region[用户列表查询] | 
|---|
|  |  |  | [Route("Xt_User/list")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public object list(string sWhere) | 
|---|
|  |  |  | 
|---|
|  |  |  | string sql = sql1 + sWhere; | 
|---|
|  |  |  | ds = oCN.RunProcReturn(sql, "h_v_IF_UserList"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //if (ds.Tables[0].Rows.Count != 0 || ds != null) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | objJsonResult.code = "1"; | 
|---|
|  |  |  | objJsonResult.count = 1; | 
|---|
|  |  |  | objJsonResult.Message = "Sucess!"; | 
|---|
|  |  |  | objJsonResult.data = ds.Tables[0]; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | //else | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //objJsonResult.code = "0"; | 
|---|
|  |  |  | //objJsonResult.count = 0; | 
|---|
|  |  |  | //objJsonResult.Message = "无数据"; | 
|---|
|  |  |  | //objJsonResult.data = null; | 
|---|
|  |  |  | //return objJsonResult; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "Exception!" + e.ToString(); | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region [用户列表删除功能] | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// 用户信息删除功能 | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | [Route("Xt_User/DeltetUser")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public object DeltetUser(string HCzybm) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //编辑权限 | 
|---|
|  |  |  | //if (!DBUtility.ClsPub.Security_Log("Gy_UserByUserRelation_Delete", 1, false, DBUtility.ClsPub.CurUserName)) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    objJsonResult.code = "0"; | 
|---|
|  |  |  | //    objJsonResult.count = 0; | 
|---|
|  |  |  | //    objJsonResult.Message = "无删除权限!"; | 
|---|
|  |  |  | //    objJsonResult.data = null; | 
|---|
|  |  |  | //    return objJsonResult; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Int64 lngBillKey = 0; | 
|---|
|  |  |  | lngBillKey = DBUtility.ClsPub.isLong(HCzybm); | 
|---|
|  |  |  | if (lngBillKey == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "用户编码为空!"; | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | oCN.BeginTran(); | 
|---|
|  |  |  | //删除用户信息 | 
|---|
|  |  |  | oCN.RunProc("delete from  Gy_Czygl where Czybm='" + HCzybm + "'"); | 
|---|
|  |  |  | //删除用户对应的角色信息 | 
|---|
|  |  |  | oCN.RunProc("delete from  System_UserGroupInfo where UserId='" + HCzybm + "'"); | 
|---|
|  |  |  | DBUtility.ClsPub.Add_Log(DBUtility.ClsPub.CurUserName, "删除用户:" + HCzybm, DBUtility.ClsPub.CurUserName); | 
|---|
|  |  |  | oCN.Commit(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objJsonResult.code = "1"; | 
|---|
|  |  |  | objJsonResult.count = 1; | 
|---|
|  |  |  | objJsonResult.Message ="删除信息成功!"; | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = e.Message; | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region[用户列表编辑时获取表头数据] | 
|---|
|  |  |  | [Route("Xt_User/EditUser")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public ApiResult<DataSet> EditUser(string HID) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (string.IsNullOrEmpty(HID)) | 
|---|
|  |  |  | return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" }; | 
|---|
|  |  |  | SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var dataSet = oCN.RunProcReturn("select top 1 * from h_v_IF_UserList_Edit  where 用户编码='" + HID + "' ", "h_v_IF_UserList_Edit"); | 
|---|
|  |  |  | if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) | 
|---|
|  |  |  | return new ApiResult<DataSet> { code = -1, msg = "不存在此用户" }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet }; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 用户信息保存 | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="msg"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | [Route("Xt_User/SaveUser")] | 
|---|
|  |  |  | [HttpPost] | 
|---|
|  |  |  | public object SaveUser([FromBody] JObject msg) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _value = msg["msg"].ToString(); | 
|---|
|  |  |  | string msg1 = _value.ToString(); | 
|---|
|  |  |  | string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|---|
|  |  |  | string msg2 = sArray[0].ToString(); | 
|---|
|  |  |  | string msg3 = sArray[1].ToString(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ListModels oListModels = new ListModels(); | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | List<Models.Gy_User> lsmain = new List<Models.Gy_User>(); | 
|---|
|  |  |  | msg2 = msg2.Replace("\\", ""); | 
|---|
|  |  |  | msg2 = msg2.Replace("\n", "");  //\n | 
|---|
|  |  |  | lsmain = oListModels.getObjectByJson_Gy_Gy_User(msg2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //保存 | 
|---|
|  |  |  | if (msg3=="Add") //新增 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ds = oCN.RunProcReturn("select * from  Gy_Czygl where Czybm='" + lsmain[0].Czybm.ToString() + "'", "Gy_Czygl"); | 
|---|
|  |  |  | if (ds.Tables[0].Rows.Count != 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "* 编码重复!!"; | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ds = oCN.RunProcReturn("select * from  Gy_Czygl where Czymc='" + lsmain[0].Czymc.ToString() + "'", "Gy_Czygl"); | 
|---|
|  |  |  | if (ds.Tables[0].Rows.Count != 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "* 用户名重复!!"; | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | oCN.RunProc("insert into Gy_Czygl (Czybm,Czymc,Czmm,Explain,HempID,HK3UserID " + | 
|---|
|  |  |  | ",HKeeperID,HKeeper,HSecManagerID,HSecManager " + | 
|---|
|  |  |  | ",HSellManID,HSellMan,HDeptID,HDept " + | 
|---|
|  |  |  | ",HWhID,HWHName,HSupID,HSupName " + | 
|---|
|  |  |  | ",HSCWHID,HSCWHName " + | 
|---|
|  |  |  | ",HCloudUserName,HCloudUserPsd,HUSEORGID) " + | 
|---|
|  |  |  | "values ('" + lsmain[0].Czybm.ToString() + "','" + lsmain[0].Czymc.ToString() + "','" + ClsPub.StrToPsd(lsmain[0].Czmm.ToString()) + "','" + lsmain[0].Explain.ToString() + "','" + lsmain[0].HEmpID.ToString() + "',"+ lsmain[0].HK3UserID.ToString() + "" + | 
|---|
|  |  |  | ","+ lsmain[0].HKeeperID.ToString() + ",'"+ lsmain[0].HKeeper.ToString() + "',"+ lsmain[0].HSecManagerID.ToString() + ",'"+ lsmain[0].HSecManager.ToString() + "'" + | 
|---|
|  |  |  | "," + lsmain[0].HSellManID.ToString() + ",'" + lsmain[0].HSellMan.ToString() + "'," + lsmain[0].HDeptID.ToString() + ",'" + lsmain[0].HDept.ToString() + "'" + | 
|---|
|  |  |  | "," + lsmain[0].HWhID.ToString() + ",'" + lsmain[0].HWHName.ToString() + "'," + lsmain[0].HSupID.ToString() + ",'" + lsmain[0].HSupName.ToString() + "'" + | 
|---|
|  |  |  | "," + lsmain[0].HSCWHID.ToString() + ",'" + lsmain[0].HSCWHName.ToString() + "'" + | 
|---|
|  |  |  | ",'" + lsmain[0].HCloudUserName.ToString() + "','" + lsmain[0].HCloudUserPsd.ToString() + "',"+ lsmain[0].HOrgID.ToString() + ")"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else //修改 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ds = oCN.RunProcReturn("select * from  Gy_Czygl where Czybm='" + lsmain[0].Czybm.ToString() + "'", "Gy_Czygl"); | 
|---|
|  |  |  | if (ds.Tables[0].Rows[0]["Czmm"].ToString() !=  lsmain[0].Czmm)  //修改密码 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | oCN.RunProc("update Gy_Czygl set Czymc='" + lsmain[0].Czymc.ToString() + | 
|---|
|  |  |  | "',Czmm='" + ClsPub.StrToPsd(lsmain[0].Czmm.ToString()) + | 
|---|
|  |  |  | "',Explain='" + lsmain[0].Explain.ToString() + "'" + | 
|---|
|  |  |  | ",HEmpID=" + lsmain[0].HEmpID.ToString() + | 
|---|
|  |  |  | ",HK3UserID=" + lsmain[0].HK3UserID.ToString() + | 
|---|
|  |  |  | ",HKeeperID=" + lsmain[0].HKeeperID.ToString() + | 
|---|
|  |  |  | ",HKeeper='" + lsmain[0].HKeeper.ToString() + "'" + | 
|---|
|  |  |  | ",HSecManagerID=" + lsmain[0].HSecManagerID.ToString() + | 
|---|
|  |  |  | ",HSecManager='" + lsmain[0].HSecManager.ToString() + "'" + | 
|---|
|  |  |  | ",HSellManID=" + lsmain[0].HSellManID.ToString() + | 
|---|
|  |  |  | ",HSellMan='" + lsmain[0].HSellMan.ToString() + "'" + | 
|---|
|  |  |  | ",HDeptID=" + lsmain[0].HDeptID.ToString() + | 
|---|
|  |  |  | ",HDept='" + lsmain[0].HDept.ToString() + "'" + | 
|---|
|  |  |  | ",HWhID=" + lsmain[0].HWhID.ToString() + | 
|---|
|  |  |  | ",HWHName='" + lsmain[0].HWHName.ToString() + "'" + | 
|---|
|  |  |  | ",HSCWHID=" + lsmain[0].HSCWHID.ToString() + | 
|---|
|  |  |  | ",HSCWHName='" + lsmain[0].HSCWHName.ToString() + "'" + | 
|---|
|  |  |  | ",HSupID=" + lsmain[0].HSupID.ToString() + | 
|---|
|  |  |  | ",HSupName='" + lsmain[0].HSupName.ToString() + "'" + | 
|---|
|  |  |  | ",HCloudUserName='" + lsmain[0].HCloudUserName.ToString() + "'" + | 
|---|
|  |  |  | ",HCloudUserPsd='" + lsmain[0].HCloudUserPsd.ToString() + "'" + | 
|---|
|  |  |  | ",HUSEORGID=" + lsmain[0].HOrgID.ToString() + | 
|---|
|  |  |  | "  where  Czybm='" + lsmain[0].Czybm.ToString() + "'"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | oCN.RunProc("update Gy_Czygl set Czymc='" + lsmain[0].Czymc.ToString() + | 
|---|
|  |  |  | "',Explain='" + lsmain[0].Explain.ToString() + "'" + | 
|---|
|  |  |  | ",HEmpID=" + lsmain[0].HEmpID.ToString() + | 
|---|
|  |  |  | ",HK3UserID=" + lsmain[0].HK3UserID.ToString() + | 
|---|
|  |  |  | ",HKeeperID=" + lsmain[0].HKeeperID.ToString() + | 
|---|
|  |  |  | ",HKeeper='" + lsmain[0].HKeeper.ToString() + "'" + | 
|---|
|  |  |  | ",HSecManagerID=" + lsmain[0].HSecManagerID.ToString() + | 
|---|
|  |  |  | ",HSecManager='" + lsmain[0].HSecManager.ToString() + "'" + | 
|---|
|  |  |  | ",HSellManID=" + lsmain[0].HSellManID.ToString() + | 
|---|
|  |  |  | ",HSellMan='" + lsmain[0].HSellMan.ToString() + "'" + | 
|---|
|  |  |  | ",HDeptID=" + lsmain[0].HDeptID.ToString() + | 
|---|
|  |  |  | ",HDept='" + lsmain[0].HDept.ToString() + "'" + | 
|---|
|  |  |  | ",HWhID=" + lsmain[0].HWhID.ToString() + | 
|---|
|  |  |  | ",HWHName='" + lsmain[0].HWHName.ToString() + "'" + | 
|---|
|  |  |  | ",HSCWHID=" + lsmain[0].HSCWHID.ToString() + | 
|---|
|  |  |  | ",HSCWHName='" + lsmain[0].HSCWHName.ToString() + "'" + | 
|---|
|  |  |  | ",HSupID=" + lsmain[0].HSupID.ToString() + | 
|---|
|  |  |  | ",HSupName='" + lsmain[0].HSupName.ToString() + "'" + | 
|---|
|  |  |  | ",HCloudUserName='" + lsmain[0].HCloudUserName.ToString() + "'" + | 
|---|
|  |  |  | ",HCloudUserPsd='" + lsmain[0].HCloudUserPsd.ToString() + "'" + | 
|---|
|  |  |  | ",HUSEORGID=" + lsmain[0].HOrgID.ToString() + | 
|---|
|  |  |  | "  where  Czybm='" + lsmain[0].Czybm.ToString() + "'"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objJsonResult.code = "1"; | 
|---|
|  |  |  | objJsonResult.count = 1; | 
|---|
|  |  |  | objJsonResult.Message = "保存成功!"; | 
|---|
|  |  |  | //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单"); | 
|---|
|  |  |  | objJsonResult.data = 1; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "保存失败!" + e.ToString(); | 
|---|
|  |  |  | objJsonResult.data = 1; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region  根据用户编码查找已分配供应商列表 | 
|---|
|  |  |  | [Route("Xt_User/SupperPlaylist")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public object SupperPlaylist(string HUserID) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ds = oCN.RunProcReturn("select HSupID,供应商代码 HSupperNumber,供应商名称 HSupperName from h_v_Gy_UserSupplierList where HUserID='" + HUserID + "' ", "h_v_Gy_UserSupplierList"); | 
|---|
|  |  |  | if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "没有返回任何记录!"; | 
|---|
|  |  |  | objJsonResult.Message = "无供应商信息!"; | 
|---|
|  |  |  | objJsonResult.data = null; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 用户关联供应商保存 | 
|---|
|  |  |  | [Route("Xt_User/SaveUserSupper")] | 
|---|
|  |  |  | [HttpPost] | 
|---|
|  |  |  | public object SaveUserSupper([FromBody] JObject msg) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _value = msg["msg"].ToString(); | 
|---|
|  |  |  | string msg1 = _value.ToString(); | 
|---|
|  |  |  | string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|---|
|  |  |  | string msg2 = sArray[0].ToString(); | 
|---|
|  |  |  | string msg3 = sArray[1].ToString(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // | 
|---|
|  |  |  | ListModels oListModels = new ListModels(); | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | List<Models.Gy_UserSupper> lsmain = new List<Models.Gy_UserSupper>(); | 
|---|
|  |  |  | msg2 = msg2.Substring(1, msg2.Length - 2); | 
|---|
|  |  |  | msg2 = msg2.Replace("\\", ""); | 
|---|
|  |  |  | msg2 = msg2.Replace("\n", "");  //\n | 
|---|
|  |  |  | lsmain = oListModels.getObjectByJson_Gy_UserSupper(msg2); | 
|---|
|  |  |  | oCN.BeginTran(); | 
|---|
|  |  |  | //删除已经关联的数据 | 
|---|
|  |  |  | oCN.RunProc("Delete From Gy_UserSupplierRelation  where HUserID='" + msg3.ToString() + "'"); | 
|---|
|  |  |  | foreach (Models.Gy_UserSupper oItem in lsmain) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //重新写入关联数据 | 
|---|
|  |  |  | oCN.RunProc("insert into Gy_UserSupplierRelation (HSupID,HUserID) values ('" + oItem.HSupID + "','" + msg3.ToString() + "')"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | oCN.Commit(); | 
|---|
|  |  |  | objJsonResult.code = "1"; | 
|---|
|  |  |  | objJsonResult.count = 1; | 
|---|
|  |  |  | objJsonResult.Message = "保存成功!"; | 
|---|
|  |  |  | //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单"); | 
|---|
|  |  |  | objJsonResult.data = 1; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objJsonResult.code = "0"; | 
|---|
|  |  |  | objJsonResult.count = 0; | 
|---|
|  |  |  | objJsonResult.Message = "保存失败!" + e.ToString(); | 
|---|
|  |  |  | objJsonResult.data = 1; | 
|---|
|  |  |  | return objJsonResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|