/// <summary>
        /// Adds new filter.
        /// </summary>
        /// <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 DataRow AddFilter(string description,string assembly,string className,int cost,bool enabled)
        {
            DataRow retVal = null;

            switch(m_DB_Type)
            {
                #region DB_Type.XML

                    case DB_Type.XML:

                        DataSet dsFiltersCopy = dsFilters.Copy();

                        DataRow dr = dsFiltersCopy.Tables["SmtpFilters"].NewRow();
                        dr["FilterID"]    = Guid.NewGuid().ToString();
                        dr["Description"] = description;
                        dr["Assembly"]    = assembly;
                        dr["ClassName"]   = className;
                        dr["Cost"]        = cost;
                        dr["Enabled"]     = enabled;

                        dsFiltersCopy.Tables["SmtpFilters"].Rows.Add(dr);
                        dsFiltersCopy.WriteXml(m_DataPath + "Filters.xml",XmlWriteMode.IgnoreSchema);

                        return dr;

                    #endregion

                #region DB_Type.MSSQL

                    case DB_Type.MSSQL:
                        DataSet dsFiltersCopy2 = dsFilters.Copy();

                        DataRow dr2 = dsFiltersCopy2.Tables["SmtpFilters"].NewRow();
                        dr2["FilterID"]    = Guid.NewGuid().ToString();
                        dr2["Description"] = description;
                        dr2["Assembly"]    = assembly;
                        dr2["ClassName"]   = className;
                        dr2["Cost"]        = cost;
                        dr2["Enabled"]     = enabled;

                        dsFiltersCopy2.Tables["SmtpFilters"].Rows.Add(dr2);
                        dsFiltersCopy2.WriteXml(m_DataPath + "Filters.xml",XmlWriteMode.IgnoreSchema);

                        return dr2;

                    #endregion

                #region DB_Type.WebServices

                case DB_Type.WebServices:
                    using(RemoteAdmin eng = new RemoteAdmin()){
                        _Core.InitWebService(m_WebServicesUrl,m_WebServicesPwd,m_WebServicesUser,eng);

                        return eng.AddFilter(description,assembly,className,cost,enabled).Tables["SmtpFilters"].Rows[0];
                    }

                #endregion
            }

            return retVal;
        }