/// <summary> /// Updates specified filter. /// </summary> /// /// <param name="filterID">FilterID which to update.</param> /// <param name="description">Filter description</param> /// <param name="assembly">Assembly with full location. Eg. C:\MailServer\Filters\filter.dll .</param> /// <param name="className">Filter full class name, wih namespace. Eg. LumiSoft.MailServer.Fileters.Filter1 .</param> /// <param name="cost">Filters are sorted by cost and proccessed with cost value. Smallest cost is proccessed first.</param> /// <param name="enabled">Specifies if filter is enabled.</param> /// <returns></returns> public void UpdateFilter(string filterID,string description,string assembly,string className,int cost,bool enabled) { switch(m_DB_Type) { #region DB_Type.XML case DB_Type.XML: DataSet dsFiltersCopy = dsFilters.Copy(); using(DataView dv = new DataView(dsFiltersCopy.Tables["SmtpFilters"])){ dv.RowFilter = "FilterID='" + filterID + "'"; if(dv.Count > 0){ DataRow dr = dv[0].Row; dr["Description"] = description; dr["Assembly"] = assembly; dr["ClassName"] = className; dr["Cost"] = cost; dr["Enabled"] = enabled; } dsFiltersCopy.WriteXml(m_DataPath + "Filters.xml",XmlWriteMode.IgnoreSchema); } break; #endregion #region DB_Type.MSSQL case DB_Type.MSSQL: DataSet dsFiltersCopy2 = dsFilters.Copy(); using(DataView dv = new DataView(dsFiltersCopy2.Tables["SmtpFilters"])){ dv.RowFilter = "FilterID='" + filterID + "'"; if(dv.Count > 0){ DataRow dr = dv[0].Row; dr["Description"] = description; dr["Assembly"] = assembly; dr["ClassName"] = className; dr["Cost"] = cost; dr["Enabled"] = enabled; } dsFiltersCopy2.WriteXml(m_DataPath + "Filters.xml",XmlWriteMode.IgnoreSchema); } break; #endregion #region DB_Type.WebServices case DB_Type.WebServices: using(RemoteAdmin eng = new RemoteAdmin()){ _Core.InitWebService(m_WebServicesUrl,m_WebServicesPwd,m_WebServicesUser,eng); eng.UpdateFilter(filterID,description,assembly,className,cost,enabled); } break; #endregion } }