using Dapper;
using Learun.DataBase.Repository;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using Learun.Application.Base.AuthorizeModule;
using Learun.Application.Base.SystemModule;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.PersonnelManagement;
namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
///
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创 建:超级管理员
/// 日 期:2019-01-29 17:31
/// 描 述:教师信息管理
///
public class EmpInfoService : RepositoryFactory
{
private object Select;
#region 获取数据
///
/// 获取页面显示列表数据
///
/// 查询参数
///
public IEnumerable GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT t.*,b.F_Order as DeptOrder ");
strSql.Append(" FROM EmpInfo t left join " + BaseRepository().getDbConnection().Database + ".dbo.LR_Base_Department b on t.F_DepartmentId=b.F_DepartmentId ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["EmpNo"].IsEmpty())
{
dp.Add("EmpNo", queryParam["EmpNo"].ToString(), DbType.String);
strSql.Append(" AND t.EmpNo = @EmpNo ");
}
if (!queryParam["EmpName"].IsEmpty())
{
dp.Add("EmpName", "%" + queryParam["EmpName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.EmpName Like @EmpName ");
}
if (!queryParam["mobile"].IsEmpty())
{
dp.Add("mobile", "%" + queryParam["mobile"].ToString() + "%", DbType.String);
strSql.Append(" AND t.mobile Like @mobile ");
}
if (!queryParam["DeptNo"].IsEmpty())
{
dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
strSql.Append(" AND t.DeptNo = @DeptNo ");
}
if (!queryParam["ProvinceNo"].IsEmpty())
{
dp.Add("ProvinceNo", queryParam["ProvinceNo"].ToString(), DbType.String);
strSql.Append(" AND t.ProvinceNo = @ProvinceNo ");
}
if (!queryParam["RegionNo"].IsEmpty())
{
dp.Add("RegionNo", queryParam["RegionNo"].ToString(), DbType.String);
strSql.Append(" AND t.RegionNo = @RegionNo ");
}
if (!queryParam["F_CompanyId"].IsEmpty())
{
dp.Add("F_CompanyId", queryParam["F_CompanyId"].ToString(), DbType.String);
strSql.Append(" AND t.F_CompanyId = @F_CompanyId ");
}
if (!queryParam["F_DepartmentId"].IsEmpty())
{
dp.Add("F_DepartmentId", queryParam["F_DepartmentId"].ToString(), DbType.String);
strSql.Append(" AND t.F_DepartmentId = @F_DepartmentId ");
}
if (!queryParam["BCdCultureDegree"].IsEmpty())
{
dp.Add("BCdCultureDegree", queryParam["BCdCultureDegree"].ToString(), DbType.String);
strSql.Append(" AND t.BCdCultureDegree = @BCdCultureDegree ");
}
if (!queryParam["BCdPartyFace"].IsEmpty())
{
dp.Add("BCdPartyFace", queryParam["BCdPartyFace"].ToString(), DbType.String);
strSql.Append(" AND t.BCdPartyFace = @BCdPartyFace ");
}
if (!queryParam["NationalityNo"].IsEmpty())//民族
{
dp.Add("NationalityNo", queryParam["NationalityNo"].ToString(), DbType.String);
strSql.Append(" AND t.NationalityNo = @NationalityNo ");
}
if (!queryParam["PartyFaceNo"].IsEmpty())//政治面貌
{
dp.Add("PartyFaceNo", queryParam["PartyFaceNo"].ToString(), DbType.String);
strSql.Append(" AND t.PartyFaceNo = @PartyFaceNo ");
}
if (!queryParam["GenderNo"].IsEmpty())//性别
{
dp.Add("GenderNo", queryParam["GenderNo"].ToString(), DbType.String);
strSql.Append(" AND t.GenderNo = @GenderNo ");
}
if (!queryParam["DegreeNo"].IsEmpty())//学位
{
dp.Add("DegreeNo", queryParam["DegreeNo"].ToString(), DbType.String);
strSql.Append(" AND t.DegreeNo = @DegreeNo ");
}
if (!queryParam["ProfessionalTitle"].IsEmpty())//职称
{
dp.Add("ProfessionalTitle", queryParam["ProfessionalTitle"].ToString(), DbType.String);
strSql.Append(" AND t.ProfessionalTitle = @ProfessionalTitle ");
}
if (!queryParam["HighestRecord"].IsEmpty())//最高学历
{
dp.Add("HighestRecord", queryParam["HighestRecord"].ToString(), DbType.String);
strSql.Append(" AND t.HighestRecord = @HighestRecord ");
}
if (!queryParam["CompilationCategory"].IsEmpty())//人员身份
{
dp.Add("CompilationCategory", queryParam["CompilationCategory"].ToString(), DbType.String);
strSql.Append(" AND t.CompilationCategory = @CompilationCategory ");
}
if (!queryParam["CheckMark"].IsEmpty())//是否审核
{
dp.Add("CheckMark", queryParam["CheckMark"].ToString(), DbType.String);
strSql.Append(" AND t.CheckMark = @CheckMark ");
}
if (!queryParam["IsInActiveStatus"].IsEmpty())//员工状态
{
dp.Add("IsInActiveStatus", queryParam["IsInActiveStatus"].ToString(), DbType.String);
strSql.Append(" AND t.IsInActiveStatus = @IsInActiveStatus ");
}
var result = new List();
result = this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination).ToList();
foreach (var item in result)
{
var certificate = this.BaseRepository().FindList(x => x.TCName == item.EmpId);
if (certificate.Any())
{
item.CertificateNames = string.Join(",", certificate.Select(x => x.TCType).ToArray());
item.CertificateDates = string.Join(",", certificate.Select(x => x.TCTime).ToArray());
}
}
return result;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal bool GetAny()
{
try
{
return this.BaseRepository("CollegeMIS").FindList().ToList().Count() > 0 ? true : false; ;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetAllList()
{
try
{
var dept = this.BaseRepository().FindList();
var list= this.BaseRepository("CollegeMIS").FindList();
foreach (var item in list)
{
item.DepartmentName = dept.FirstOrDefault(x=>x.F_DepartmentId==item.F_DepartmentId)?.F_FullName;
item.DepartmentNo = dept.FirstOrDefault(x => x.F_DepartmentId == item.F_DepartmentId)?.F_EnCode; ;
}
return list;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取页面显示列表数据
///
/// 查询参数
///
public IEnumerable GetList(string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.EmpId,
t.EmpNo,
t.EmpName,
t.F_CompanyId,
t.F_DepartmentId,
t.DeptNo,
t.GenderNo,
t.Photo,
t.Birthday,
t.NationalityNo,
t.PartyFaceNo,
t.IdentityCardNo,
t.CultureDegreeNo,
t.DegreeNo,
t.mobile,
t.EMail
");
strSql.Append(" FROM EmpInfo t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取EmpInfo表实体数据
/// 主键
///
///
public EmpInfoEntity GetEmpInfoEntity(string keyValue)
{
try
{
return this.BaseRepository("CollegeMIS").FindEntity(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public EmpInfoEntity GetEmpInfoEntityByNo(string keyValue)
{
try
{
return this.BaseRepository("CollegeMIS").FindEntity(m => m.EmpNo == keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public List GetEmpInfoEntityByDepartment(string keyValue)
{
try
{
return this.BaseRepository("CollegeMIS").FindList(m => m.F_DepartmentId == keyValue).ToList();
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public EmpInfoEntity GetEmpInfoEntityById(string keyValue)
{
try
{
return this.BaseRepository("CollegeMIS").FindEntity(m => m.EmpId == keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetEmpInfoEntitiesByName(string name)
{
try
{
return this.BaseRepository("CollegeMIS").FindList(x => x.EmpName == name);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public EmpInfoEntity GetEmpInfoEntityByIdCard(string idcard)
{
try
{
return this.BaseRepository("CollegeMIS").FindEntity(m => m.IdentityCardNo == idcard);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 教师年龄比例
///
///
public EmpInfoEntity GetEmpInfoAgeRate()
{
try
{
var strSql = new StringBuilder();
strSql.Append(@"select
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 60 then 1 else 0 end) as age1,
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 50 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 60 then 1 else 0 end) as age2,
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 40 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 50 then 1 else 0 end) as age3,
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 30 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 40 then 1 else 0 end) as age4,
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 20 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 30 then 1 else 0 end) as age5
from empinfo t where t.Birthday is not null");
return this.BaseRepository("CollegeMIS").FindEntity(strSql.ToString(), null);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
#region 提交数据
///
/// 生成教师帐号
///
public void GenerateAccout(string empId = null)
{
try
{
var teacherList = new List();
if (empId != null)
{
var listIds = empId.Split(',');
teacherList = this.BaseRepository("CollegeMIS")
.FindList(a => listIds.Contains(a.EmpId) && a.CheckMark == true).ToList();
}
else
{
teacherList = this.BaseRepository("CollegeMIS").FindList(a => a.CheckMark == true).ToList();
}
UserRelationIBLL userRelationIBLL = new UserRelationBLL();
UserIBLL userIBLL = new UserBLL();
var alluserlist = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
var roleId = Config.GetValue("GenerateTeachersRoleId");
var defaultpwd = Config.GetValue("defaultpwd");
//读取默认密码配置中已启用的密码
var Sys_DefaultPwdConfigEntity = this.BaseRepository().FindEntity(x => x.IsEnabled == true);
if (Sys_DefaultPwdConfigEntity != null)
{
defaultpwd = Sys_DefaultPwdConfigEntity.Pwd;
}
var studentList = new List();
foreach (var tEntity in teacherList)
{
if (alluserlist.Count(m => m.F_Account == tEntity.EmpNo) > 0)
{
continue;
}
var annexesFileEntity = this.BaseRepository().FindEntity(a => a.F_FolderId == tEntity.Photo);
var url = "";
if (annexesFileEntity != null)
{
url = annexesFileEntity.F_FilePath;
url = "/Resource/" + url.Substring(url.IndexOf(annexesFileEntity.F_CreateUserId), url.Length - url.IndexOf(annexesFileEntity.F_CreateUserId));
}
UserEntity userbase = new UserEntity();
userbase.F_Account = tEntity.EmpNo;
userbase.F_RealName = tEntity.EmpName;
userbase.F_EnCode = tEntity.EmpNo;
userbase.F_Password = Md5Helper.Encrypt(defaultpwd, 32).ToLower();
userbase.F_HeadIcon = string.IsNullOrEmpty(url) ? Config.GetValue("defaultheadimg") : url;
userbase.F_Gender = tEntity.GenderNo.HasValue ? Convert.ToInt32(tEntity.GenderNo.Value) : 1;
userbase.F_DeleteMark = 0;
userbase.F_EnabledMark = 1;
userbase.F_Mobile = tEntity.mobile;
userbase.F_Description = "教师";
userbase.F_CompanyId = tEntity.F_CompanyId;
userbase.F_DepartmentId = tEntity.F_DepartmentId;
userbase.F_IdentityCardNo = tEntity.IdentityCardNo;
userbase.F_Order = tEntity.F_Order;
userIBLL.SaveEntity(null, userbase);
studentList.Add(userbase);
}
if (studentList.Any())
{
string s = studentList.Select(m => m.F_UserId).Aggregate((current, userEntity) => current + "," + userEntity);
userRelationIBLL.SaveEntityList2(roleId, 1, s);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void UpdateAccount(string empId = null)
{
try
{
UserIBLL userIBLL = new UserBLL();
var teacherList = new List();
if (empId != null)
{
var listIds = empId.Split(',');
teacherList = this.BaseRepository("CollegeMIS")
.FindList(a => listIds.Contains(a.EmpId)).ToList();
}
else
{
teacherList = this.BaseRepository("CollegeMIS").FindList().ToList();
}
var baseTeacherList = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
foreach (var baseTeacher in baseTeacherList)
{
var num = 0;
var teacher = teacherList.FirstOrDefault(a => a.EmpNo == baseTeacher.F_Account);
if (teacher != null)
{
if (baseTeacher.F_Gender != Convert.ToInt32(teacher.GenderNo))
{
baseTeacher.F_Gender = Convert.ToInt32(teacher.GenderNo);
num++;
}
if (baseTeacher.F_Mobile != teacher.mobile)
{
baseTeacher.F_Mobile = teacher.mobile;
num++;
}
if (baseTeacher.F_CompanyId != teacher.F_CompanyId)
{
baseTeacher.F_CompanyId = teacher.F_CompanyId;
num++;
}
if (baseTeacher.F_DepartmentId != teacher.F_DepartmentId)
{
baseTeacher.F_DepartmentId = teacher.F_DepartmentId;
num++;
}
if (baseTeacher.F_RealName != teacher.EmpName)
{
baseTeacher.F_RealName = teacher.EmpName;
num++;
}
if (baseTeacher.F_IdentityCardNo != teacher.IdentityCardNo)
{
baseTeacher.F_IdentityCardNo = teacher.IdentityCardNo;
num++;
}
if (num > 0)
{
userIBLL.UpdateEntity(baseTeacher);
}
}
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void Lock(string keyValue)
{
var db = this.BaseRepository("CollegeMIS").BeginTrans();
try
{
//单个启用
//this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + keyValue + "'");
//多个启用
var keyValueArr = keyValue.Split(',');
foreach (var item in keyValueArr)
{
db.ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + item + "'");
}
db.Commit();
}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void UnLock(string keyValue)
{
var db = this.BaseRepository("CollegeMIS").BeginTrans();
try
{
//单个停用
//this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + keyValue + "'");
//多个停用
var keyValueArr = keyValue.Split(',');
foreach (var item in keyValueArr)
{
db.ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + item + "'");
}
db.Commit();
}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 审核全部
///
public void CheckAll()
{
try
{
this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 ");
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 删除实体数据
/// 主键
///
///
public void DeleteEntity(string keyValue)
{
try
{
//单个删除
//this.BaseRepository("CollegeMIS").Delete(t => t.EmpId == keyValue);
//多个删除
var keyValueArr = keyValue.Split(',');
foreach (var item in keyValueArr)
{
var empinfo = this.BaseRepository("CollegeMIS").FindEntity(t => t.EmpId == item);
var userinfo = BaseRepository().FindEntity(m => m.F_Account == empinfo.EmpNo);
if (userinfo != null)
{
BaseRepository().Delete(m => m.F_UserId == userinfo.F_UserId);
BaseRepository().Delete(userinfo);
}
this.BaseRepository("CollegeMIS").Delete(empinfo);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 保存实体数据(新增、修改)
/// 主键
///
///
public void SaveEntity(string keyValue, EmpInfoEntity entity)
{
try
{
UserIBLL userIBLL = new UserBLL();
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
this.BaseRepository("CollegeMIS").Update(entity);
var annexesFileEntity = this.BaseRepository().FindEntity(a => a.F_FolderId == entity.Photo);
var url = "";
if (annexesFileEntity != null)
{
url = annexesFileEntity.F_FilePath;
url = "/" + url.Substring(url.IndexOf("Resource"));
}
var baseUser = userIBLL.GetEntityByAccount(entity.EmpNo);
if (baseUser != null)
{
baseUser.F_HeadIcon = url;
baseUser.F_RealName = entity.EmpName;
baseUser.F_IdentityCardNo = entity.IdentityCardNo;
baseUser.F_Mobile = entity.mobile;
userIBLL.SaveEntity(baseUser.F_UserId, baseUser);
}
}
else
{
if (string.IsNullOrEmpty(entity.EmpId))
{
//生成编号
var ruleName = ConfigurationManager.AppSettings["EmpNoRule"];//
if (ruleName == "jy")
{
var strHead = DateTime.Now.ToString("yyyyMM");
var SerialNum = 1;
var empInfoEntities = this.BaseRepository("CollegeMIS").FindList(a => a.EmpNo.Contains(strHead));
if (empInfoEntities.Count() > 0)
{
var aa = empInfoEntities.Where(a => a.EmpNo.Length >= 8);
var bb = aa.Select(a => a.EmpNo.Substring(a.EmpNo.Length - 2, 2));
var cc = bb.Select(a => int.Parse(a));
SerialNum = cc.Max() + 1;
}
entity.EmpNo = strHead + SerialNum.ToString().PadLeft(2, '0');
}
entity.Create();
}
this.BaseRepository("CollegeMIS").Insert(entity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void UpdatePhoto(string id, string photo)
{
BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set Photo='" + photo + "' where EmpId='" + id + "'");
}
///
/// 保存实体数据(新增、修改)
/// 主键
///
///
public void SaveEntity(UserInfo userInfo, string keyValue, EmpInfoEntity entity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue, userInfo);
this.BaseRepository("CollegeMIS").Update(entity);
}
else
{
entity.Create(userInfo);
this.BaseRepository("CollegeMIS").Insert(entity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 保存部门、系部
/// 主键
///
///
public void SaveEditEntity(string keyValue, EmpInfoEntity entity)
{
var db = this.BaseRepository("CollegeMIS").BeginTrans();
try
{
if (!string.IsNullOrEmpty(keyValue))
{
if (keyValue.IndexOf(',') == -1)
{
var model = db.FindEntity(keyValue);
if (model != null)
{
if (!string.IsNullOrEmpty(entity.F_CompanyId))
{
model.F_CompanyId = entity.F_CompanyId;
}
if (!string.IsNullOrEmpty(entity.F_DepartmentId))
{
model.F_DepartmentId = entity.F_DepartmentId;
}
if (!string.IsNullOrEmpty(entity.DeptNo))
{
model.DeptNo = entity.DeptNo;
}
db.Update(model);
}
}
else
{
foreach (var item in keyValue.Split(','))
{
var model = db.FindEntity(item);
if (model != null)
{
if (!string.IsNullOrEmpty(entity.F_CompanyId))
{
model.F_CompanyId = entity.F_CompanyId;
}
if (!string.IsNullOrEmpty(entity.F_DepartmentId))
{
model.F_DepartmentId = entity.F_DepartmentId;
}
if (!string.IsNullOrEmpty(entity.DeptNo))
{
model.DeptNo = entity.DeptNo;
}
db.Update(model);
}
}
}
}
db.Commit();
}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 修改二维码状态
///
///
///
public void UpdateQRCodeStatus(string keyValue, int QRCodeStatus)
{
try
{
if (keyValue.Contains(","))
{
keyValue = string.Join("','", keyValue.Split(','));
}
this.BaseRepository("CollegeMIS").ExecuteBySql($"update EmpInfo set QRCodeStatus='{QRCodeStatus}' where EmpId in ('{keyValue}')");
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
}
}