/// <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
            }
        }