/// <summary> /// 删除 /// </summary> /// <param name="model"></param> /// <returns>成功返回true</returns> public static bool DeleteCascading(Cascading model) { if (model != null) { var con = SqLiteHelper.Open(_dbPath); try { string mysqlString = "delete from ipvt_cascadingtable where CascadingID=?id"; var param = new MySqlParameter("?id", model.Id); CustomMySqlHelper.ExecuteNonQuery(mysqlString, param); string sqliteSql = string.Format("delete from db_data where RowID={0}", model.RowId); SqLiteHelper.ExecuteNonquery(con, sqliteSql); return(true); } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } finally { if (con != null) { con.Close(); } } } return(false); }
/// <summary> /// 获取职位集 /// </summary> public static void GetPositions(out List <Position> list) { list = new List <Position>(); string sqlStr = "select PositionID,PositionName from ipvt_positiontable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sqlStr); while (reader.Read()) { var p = new Position(); p.PositionId = EvaluationHelper.ObjectToInt(reader["PositionID"]); p.PositionName = reader["PositionName"].ToString(); list.Add(p); } } catch (Exception ex) { LogHelper.MainLog("error in UserManager.GetPositions()!" + ex.Message); } finally { if (reader != null) { reader.Close(); } } }
public static bool JudgeVoiceExist(string name) { string sql = string.Format(@"select count(*) as count from ipvt_voicefiletable where VoiceFileName={0} and VoiceType=0", name); MySqlDataReader readercount = CustomMySqlHelper.ExecuteDataReader(sql); try { int SumCount = 0; while (readercount.Read()) { SumCount = EvaluationHelper.ObjectToInt(readercount["count"]); } if (SumCount > 0) { return(true); } } catch (Exception ex) { LogHelper.MainLog("Error in GetCallLogCount!" + ex.Message); } return(false); }
/// <summary> /// 保存语音文件名到数据库 /// </summary> /// <param name="ss"></param> public static bool SavaVoiceFiles(List <string> ss) { if (ss != null) { List <string> list; GetVoiceList(out list); var sqlmodels = new List <SqlTextModel>(); for (int i = 0; i < ss.Count; i++) { string name = ss[i].Split(';').ToList()[0]; string time = ss[i].Split(';').ToList()[1]; if (!list.Contains(name)) { string sql = "insert into ipvt_voicefiletable(VoiceFileName,Description) values(?name,?filetime)"; var ps = new MySqlParameter[2]; ps[0] = new MySqlParameter("?name", name); ps[1] = new MySqlParameter("?filetime", time); var model = new SqlTextModel { SqlString = sql, MySqlParams = ps }; sqlmodels.Add(model); } } return(CustomMySqlHelper.ExecuteSqlList(sqlmodels)); } return(false); }
// 获取语音文件 private static Dictionary <int, string> GetVoices(int number) { var list = new Dictionary <int, string>(); if (number > 0) { string sql = "SELECT ID,VoiceFileName from ipvt_voicefiletable where PhoneNumber=?num and VoiceType=1"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql, new MySqlParameter("?num", number)); while (reader.Read()) { int id = EvaluationHelper.ObjectToInt(reader["ID"]); if (!list.ContainsKey(id)) { list.Add(id, reader["VoiceFileName"].ToString()); } } } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } finally { if (reader != null) { reader.Close(); //读取完关闭reader对象 } } } return(list); }
/// <summary> /// 获取语音文件名称集合 /// </summary> public static void GetVoiceList(out List <PathAndNameModel> list) { list = new List <PathAndNameModel>(); string sql = "SELECT * from ipvt_voicefiletable where VoiceType=0"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); while (reader.Read()) { list.Add(new PathAndNameModel() { Name = reader["VoiceFileName"].ToString(), FileTime = reader["Description"].ToString() }); } } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } finally { if (reader != null) { reader.Close(); //读取完关闭reader对象 } } }
/// <summary> /// 获取SDK配置信息 /// </summary> /// <param name="models"></param> public static void GetSdkModels(out List <SdkSetupModel> models) { models = new List <SdkSetupModel>(); string sql = "select SdkID,SdkIP,SdkPort from ipvt_sdkinfotable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); if (reader != null) { while (reader.Read()) { models.Add(new SdkSetupModel() { Id = EvaluationHelper.ObjectToInt(reader["SdkID"]), Ip = EvaluationHelper.ObjectToString(reader["SdkIP"]), Port = EvaluationHelper.ObjectToString(reader["SdkPort"]) }); } } } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } finally { if (reader != null) { reader.Close(); } } }
/// <summary> /// 改变区号:调用存储过程清理旧分机/设备表,写新的分机号数据 /// </summary> /// <param name="areacode">区号</param> /// <param name="oldareacode">区号</param> /// <returns></returns> public static bool UpdateAreacode(int areacode, int oldareacode) { List <SqlTextModel> list = new List <SqlTextModel>(); int oldmin = oldareacode * 1000; int oldmax = oldareacode * 1000 + 1000; int min = areacode * 1000; if (IsTh) { //6位分机号,写3000个 oldmin = oldareacode * 10000; oldmax = oldmin + 3000; min = areacode * 10000; } for (int i = oldmin; i < oldmax; i++) { string sql = "UPDATE ipvt_extensionmessagetable set ExtensionNO=?extno where ExtensionNO=?old"; var ps = new MySqlParameter[2]; ps[0] = new MySqlParameter("?extno", min); ps[1] = new MySqlParameter("?old", i); min++; list.Add(new SqlTextModel() { SqlString = sql, MySqlParams = ps }); } //list.Add(new SqlTextModel { SqlString = "UPDATE ipvt_transetuptable SET StartTime=NULL,EndTime=NULL,StairTran=NULL,SecondTran=NULL,ThreeTran=NULL,IsEnable=0" }); //list.Add(new SqlTextModel { SqlString = "DELETE FROM ipvt_transferinfotable" }); return(CustomMySqlHelper.ExecuteSqlList(list)); }
/// <summary> /// 保存 /// </summary> /// <param name="models"></param> /// <returns></returns> public static bool SavePortAlarmModels(ObservableCollection <CommonModel> models) { List <SqlTextModel> list = new List <SqlTextModel>(); if (models != null) { for (int i = 0; i < models.Count; i++) { SqlTextModel model = new SqlTextModel(); model.SqlString = "update ipvt_alarmtypetable set AlarmType=?type where AlarmTypeID=?id"; model.MySqlParams = new[] { new MySqlParameter("?type", models[i].Content), new MySqlParameter("?id", models[i].Id) }; list.Add(model); } } if (list.Count > 0) { return(CustomMySqlHelper.ExecuteSqlList(list)); } return(false); }
/// <summary> /// 获取角色集 /// </summary> public static void GetRoles(out List <Role> list) { list = new List <Role>(); string sqlStr = "select GroupID,GroupName from ipvt_jurgrouptable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sqlStr); while (reader.Read()) { var r = new Role(); r.RoleId = EvaluationHelper.ObjectToInt(reader["GroupID"]); r.RoleName = reader["GroupName"].ToString(); list.Add(r); } } catch (Exception ex) { LogHelper.MainLog("error in UserManager.GetRoles()!" + ex); } finally { if (reader != null) { reader.Close(); //读取完关闭reader对象 } } }
/// <summary> /// 删除设备信息 /// </summary> /// <param name="device"></param> /// <returns></returns> public static bool DelDeviceInfo(Device device) { if (device != null) { List <SqlTextModel> list = new List <SqlTextModel>(); string s1 = "DELETE FROM ipvt_panelinfotable WHERE ExtensionID=?id;"; string s2 = "UPDATE ipvt_extensionmessagetable SET CurrentState = 0,DeviceIP = NULL,StateID = NULL,Date = NULL,Time = NULL,PhoneState=0 WHERE ExtensionID=?id;"; string s3 = "DELETE FROM ipvt_deviceinfotable WHERE DeviceID=?id;"; list.Add(new SqlTextModel() { SqlString = s1, MySqlParams = new[] { new MySqlParameter("?id", device.Extension.Id) } }); list.Add(new SqlTextModel() { SqlString = s2, MySqlParams = new[] { new MySqlParameter("?id", device.Extension.Id) } }); list.Add(new SqlTextModel() { SqlString = s3, MySqlParams = new[] { new MySqlParameter("?id", device.Id) } }); return(CustomMySqlHelper.ExecuteSqlList(list)); } return(false); }
/// <summary> /// 获取所有权限 /// </summary> public static void GetJurisdictions(out List <Jurisdiction> list) { list = new List <Jurisdiction>(); string sql = "select JurisdictionID,JurisdictionName,Description from ipvt_jurisdictiontable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); while (reader.Read()) { var jur = new Jurisdiction(); jur.Id = EvaluationHelper.ObjectToInt(reader["JurisdictionID"]); jur.JurName = reader["JurisdictionName"].ToString(); jur.Description = reader["Description"].ToString(); list.Add(jur); } } catch (Exception ex) { LogHelper.MainLog("error in GetJurList(int gid)!" + ex.Message); } finally { if (reader != null) { reader.Close(); //读取完关闭reader对象 } } }
/// <summary> /// 获取指定分机的呼叫转移列表 /// </summary> /// <param name="transfers"></param> /// <param name="exten"></param> /// <returns></returns> public static void GetTransferTableByExtension(out List <Transfer> transfers, Extension exten) { transfers = new List <Transfer>(); if (exten != null) { DataSet set; string sql = "SELECT TransferID,TransferLevel,TransferExtensionNo," + "TransferLevel FROM ipvt_transferinfotable WHERE ExtensionNo=" + exten.Number + " ORDER BY TransferLevel ASC"; try { set = CustomMySqlHelper.ExecuteDataSet(sql); DataRowCollection rows = set.Tables[0].Rows; if (rows != null) { foreach (DataRow row in rows) { Transfer tran = new Transfer(); tran.Id = EvaluationHelper.ObjectToInt(row["TransferID"]); tran.Level = EvaluationHelper.ObjectToInt(row["TransferLevel"]); tran.ExtensionNo = exten.Number; tran.TransferExtensionNo = row["TransferExtensionNo"].ToString(); transfers.Add(tran); } } } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } } }
/// <summary> /// 添加网点信息 /// </summary> /// <param name="point">网点信息</param> public static void Add(ref GeoPoint point) { if (point == null) { return; } var sqlBuilder = new StringBuilder("INSERT INTO ipvt_geoinfotable(Name,FormattedAddress,Latitude,Longitude,Phone,Note) "); sqlBuilder.Append("VALUES(?name,?address,?lat,?lng,?phone,?note);"); sqlBuilder.Append("SELECT @@IDENTITY"); //string sql = " "; var parameters = new MySqlParameter[6]; parameters[0] = new MySqlParameter("?name", point.Name); parameters[1] = new MySqlParameter("?address", point.Address); parameters[2] = new MySqlParameter("?lat", point.Latitude); parameters[3] = new MySqlParameter("?lng", point.Longitude); parameters[4] = new MySqlParameter("?phone", point.Phone); parameters[5] = new MySqlParameter("?note", point.Note); object obj = CustomMySqlHelper.ExecuteScalar(sqlBuilder.ToString(), parameters); if (obj != null) { point.Id = EvaluationHelper.ObjectToInt(obj); } }
/// <summary> /// 获取设备分组信息 /// </summary> /// <returns></returns> public static void GetGroups(ref List <DeviceGroup> groups) { try { string sql = "SELECT * FROM ipvt_groupinfotable"; MySqlDataReader reader = null; reader = CustomMySqlHelper.ExecuteDataReader(sql); if (reader != null) { while (reader.Read()) { var grp = new DeviceGroup(); grp.Id = EvaluationHelper.ObjectToInt(reader["GroupID"]); grp.Name = Convert.ToString(reader["GroupName"]); grp.ParentId = EvaluationHelper.ObjectToInt(reader["ParentID"]); grp.Level = EvaluationHelper.ObjectToInt(reader["GroupLevel"]); groups.Add(grp); } } } catch (Exception ex) { LogHelper.MainLog("error int GetGroups()!" + ex.StackTrace); } }
/// <summary> /// 更新组信息 /// </summary> /// <param name="groups"></param> /// <returns></returns> public static bool UpdateGroups(List <DeviceGroup> groups) { bool result = false; if (groups != null) { var list = new List <SqlTextModel>(); foreach (DeviceGroup group in groups) { string sql = "update ipvt_groupinfotable set ParentID=?pid,GroupName=?name,GroupLevel=?level" + " where GroupID=?id"; var ps = new[] { new MySqlParameter("?pid", group.ParentId), new MySqlParameter("?name", group.Name), new MySqlParameter("?level", group.Level), new MySqlParameter("?id", group.Id) }; list.Add(new SqlTextModel() { SqlString = sql, MySqlParams = ps }); } result = CustomMySqlHelper.ExecuteSqlList(list); } return(result); }
/// <summary> /// 通过单个分机号获取正在等待的分机信息 /// </summary> /// <returns></returns> public static void GetChannelsinfo(out List <Channelsinfo> infoes) { infoes = new List <Channelsinfo>(); string sql = "SELECT uuid,ExtensionNO,application,application_data from ipvt_channelsinfotable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); while (reader.Read()) { Channelsinfo model = new Channelsinfo(); model.Uuid = EvaluationHelper.ObjectToString(reader["uuid"]); model.ExtNo = EvaluationHelper.ObjectToString(reader["ExtensionNO"]); model.ApplicationInfo = EvaluationHelper.ObjectToString(reader["application"]); model.ApplicationDate = EvaluationHelper.ObjectToString(reader["application_data"]); infoes.Add(model); } } catch (Exception ex) { LogHelper.MainLog(ex.Message); } finally { if (reader != null) { reader.Close(); } } }
/// <summary> /// 根据组id获取组信息 /// </summary> /// <param name="gid"></param> /// <returns></returns> public static DeviceGroup GetGroup(int gid) { DeviceGroup group = null; string sql = "SELECT GroupID,GroupName,ParentID,GroupLevel FROM ipvt_groupinfotable where GroupID=?gid"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql, new MySqlParameter("?gid", gid)); while (reader.Read()) { group = new DeviceGroup(); group.Id = EvaluationHelper.ObjectToInt(reader["GroupID"]); group.Name = Convert.ToString(reader["GroupName"]); group.ParentId = EvaluationHelper.ObjectToInt(reader["ParentID"]); group.Level = EvaluationHelper.ObjectToInt(reader["GroupLevel"]); break; } } catch (Exception ex) { LogHelper.MainLog(ex.Message); } finally { if (reader != null) { reader.Close(); } } return(group); }
/// <summary> /// 获取正在通话的集合 /// </summary> /// <returns></returns> public static void GeTalkInfos(ref List <TalkInfo> list) { //list = new List<TalkInfo>(); string sql = "SELECT * FROM ipvt_talkinginfotable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); if (reader != null) { while (reader.Read()) { var info = new TalkInfo(); info.From = reader["caller"].ToString(); info.To = reader["callee"].ToString(); list.Add(info); } } } catch (Exception ex) { LogHelper.MainLog("error in GeTalkInfos()!ex:" + ex); } finally { if (reader != null) { reader.Close(); } } }
/// <summary> /// 根据ip获取对应的分机号 /// </summary> /// <param name="ip"></param> public static string GetExtensionNoByIp(string ip) { string result = ""; if (string.IsNullOrEmpty(ip)) { return(result); } string sql = "SELECT ExtensionNo FROM ipvt_extensionmessagetable WHERE DeviceIP=?ip"; var ps = new MySqlParameter[1]; ps[0] = new MySqlParameter("?ip", ip); try { result = CustomMySqlHelper.ExecuteScalar(sql, ps).ToString(); } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } return(result); }
/// <summary> /// 通过单个分机号获取正在等待的分机信息 /// </summary> /// <param name="exten">分机号</param> /// <returns></returns> public static Channelsinfo GetChannelsinfo(string exten) { string sql = "SELECT uuid,ExtensionNO,application,application_data from ipvt_channelsinfotable where ExtensionNO=?extenNo"; var ps = new MySqlParameter[1]; ps[0] = new MySqlParameter("?extenNo", exten); MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql, ps); while (reader.Read()) { Channelsinfo model = new Channelsinfo(); model.Uuid = EvaluationHelper.ObjectToString(reader["uuid"]); model.ExtNo = EvaluationHelper.ObjectToString(reader["ExtensionNO"]); model.ApplicationInfo = EvaluationHelper.ObjectToString(reader["application"]); model.ApplicationDate = EvaluationHelper.ObjectToString(reader["application_data"]); return(model); } } catch (Exception ex) { LogHelper.MainLog(ex.Message); } finally { if (reader != null) { reader.Close(); } } return(null); }
public static void GetGeo(ref List <GeoPoint> listGeo) { string sql = "select * from ipvt_geoinfotable"; MySqlDataReader rd = CustomMySqlHelper.ExecuteDataReader(sql); try { DataSet set = CustomMySqlHelper.ExecuteDataSet(sql); if (set.Tables.Count > 0) { DataRowCollection rows = set.Tables[0].Rows; if (rows != null) { foreach (DataRow row in rows) { var pnt = new GeoPoint(); pnt.Id = EvaluationHelper.ObjectToInt(row["GeoID"]); pnt.Name = Convert.ToString(row["Name"]); pnt.Address = Convert.ToString(row["FormattedAddress"]); pnt.Note = Convert.ToString(row["Note"]); pnt.Phone = Convert.ToString(row["Phone"]); pnt.Latitude = EvaluationHelper.ObjectToDouble(row["Latitude"]); pnt.Longitude = EvaluationHelper.ObjectToDouble(row["Longitude"]); listGeo.Add(pnt); } } } } catch (Exception ex) { LogHelper.MainLog("GeoPointManager.Get error!" + ex); } }
/// <summary> /// 获取输入/输出端口报警设置原型 /// </summary> /// <param name="models"></param> public static void GetPortAlarmModels(out List <CommonModel> models) { models = new List <CommonModel>(); string sql = "select AlarmTypeID,AlarmType from ipvt_alarmtypetable"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); while (reader.Read()) { CommonModel model = new CommonModel(); model.Id = EvaluationHelper.ObjectToInt(reader["AlarmTypeID"]); model.Content = EvaluationHelper.ObjectToString(reader["AlarmType"]); models.Add(model); } } catch (Exception ex) { LogHelper.MainLog("error in GetPortAlarmModels()" + ex.Message); } finally { if (reader != null) { reader.Close(); //读取完关闭reader对象 } } }
public static int GetCount() { int count = 0; string sqlcount = " select count(*) as count from ipvt_geoinfotable"; MySqlDataReader readercount = CustomMySqlHelper.ExecuteDataReader(sqlcount); try { while (readercount.Read()) { count = EvaluationHelper.ObjectToInt(readercount["count"]); } } catch (Exception ex) { LogHelper.MainLog("Error in GetCallLogCount!" + ex.Message); } finally { if (readercount != null) { readercount.Close(); //读取完关闭reader对象 } } return(count); }
/// <summary> /// 获取未使用的分机号集合 /// </summary> /// <returns></returns> public static void GetExtensionNoList(out List <string> list) { list = new List <string>(); string sql = "SELECT ExtensionNO from ipvt_extensionmessagetable WHERE CurrentState=0"; MySqlDataReader reader = null; try { reader = CustomMySqlHelper.ExecuteDataReader(sql); while (reader.Read()) { if (reader["ExtensionNO"] != null) { list.Add(reader["ExtensionNO"].ToString()); } } } catch (Exception ex) { LogHelper.MainLog(ex.ToString()); } finally { if (reader != null) { reader.Close(); //读取完关闭reader对象 } } }
/// <summary> /// 删除用户(绝对删除) /// </summary> /// <param name="uid">用户id</param> /// <returns>受影响的行数</returns> public static int DeleteUser(int uid) { string sql = "delete from ipvt_userregmessagetable where UserID=?id"; var param = new MySqlParameter[1]; param[0] = new MySqlParameter("?id", uid); return(CustomMySqlHelper.ExecuteNonQuery(sql, param)); }
/// <summary> /// 删除员工(绝对删除) /// </summary> /// <param name="uid">用户id</param> /// <returns>受影响的行数</returns> public static int DeleteStaves(int uid) { ArrayList sql = new ArrayList(); sql.Add("delete from ipvt_staffmessagetable where StaffID=" + uid + ""); sql.Add("update ipvt_userregmessagetable set StaffID=null where StaffID=" + uid + ""); return(CustomMySqlHelper.ExecuteSqlTran(sql)); }
/// <summary> /// 删除用户(软删除) /// </summary> /// <param name="uid">用户id</param> /// <returns>受影响的行数</returns> public static int RemoveUser(int uid) { string sql = "update ipvt_userregmessagetable set IsEnable=0 where UserID=?id"; var param = new MySqlParameter[1]; param[0] = new MySqlParameter("?id", uid); return(CustomMySqlHelper.ExecuteNonQuery(sql, param)); }
/// <summary> /// 从提供的网点id中,筛选出指定范围内的网点 /// </summary> /// <param name="id">网点的id数组</param> /// <param name="leftTop">地理范围的左上角经纬度</param> /// <param name="rightBottom">地理范围的右下角经纬度</param> /// <param name="points">网点集</param> /// <returns></returns> public static void GetPoints(int[] id, LatLngCoordinate leftTop, LatLngCoordinate rightBottom, out List <GeoPoint> points) { points = new List <GeoPoint>(); var sql = new StringBuilder( "SELECT GeoID,Name,FormattedAddress,Latitude,Longitude,Phone FROM ipvt_geoinfotable WHERE Latitude>?latStart AND Latitude<?latEnd AND Longitude>?lngStart AND Longitude<?lngEnd"); if (id.Length > 0) { sql.Append(" AND GeoID IN ("); foreach (int i in id) { sql.Append(i); sql.Append(","); } sql.Remove(sql.Length - 1, 1); sql.Append(")"); } var parameters = new MySqlParameter[4]; parameters[0] = new MySqlParameter("?latStart", rightBottom.Latitude); parameters[0] = new MySqlParameter("?latEnd", leftTop.Latitude); parameters[0] = new MySqlParameter("?lngStart", leftTop.Longitude); parameters[0] = new MySqlParameter("?lngEnd", rightBottom.Longitude); try { DataSet set = CustomMySqlHelper.ExecuteDataSet(sql.ToString(), parameters); if (set.Tables.Count > 0) { DataRowCollection rows = set.Tables[0].Rows; if (rows != null) { foreach (DataRow row in rows) { GeoPoint pnt = new GeoPoint(); pnt.Id = EvaluationHelper.ObjectToInt(row["GeoID"]); pnt.Name = Convert.ToString(row["Name"]); pnt.Address = Convert.ToString(row["FormattedAddress"]); //pnt.Ip = Convert.ToString(row["ip"]); pnt.Phone = Convert.ToString(row["phone"]); pnt.Latitude = EvaluationHelper.ObjectToDouble(row["Latitude"]); pnt.Longitude = EvaluationHelper.ObjectToDouble(row["Longitude"]); points.Add(pnt); } } } } catch (Exception ex) { LogHelper.MainLog("GeoPointManager.GetPoints error!" + ex); } }
/// <summary> /// 删除设备网点信息 /// </summary> public static void ClearDeviceGeo(int did) { string sql = @" UPDATE ipvt_deviceinfotable SET GeoId=NULL where DeviceId=?id"; var param = new MySqlParameter[1]; param[0] = new MySqlParameter("?id", did); CustomMySqlHelper.ExecuteNonQuery(sql, param); }