Exemple #1
0
        /// <summary>
        /// Заполняет настройки из строки
        /// </summary>
        /// <param name="LDecoder"></param>
        /// <param name="ReadEmpty"></param>
        public void Read(LineDecoder LDecoder,bool ReadEmpty)
        {
            string sValue;
            sValue = LDecoder.GetValue("MAILSRV");
            if (ReadEmpty) this.MailSrv = sValue;
            else
            {
                if (!String.IsNullOrEmpty(sValue))
                    this.MailSrv = sValue;
            }
            sValue = LDecoder.GetValue("MAILFROM");
            if (ReadEmpty) this.MailFrom = sValue;
            else
            {
                if (!String.IsNullOrEmpty(sValue))
                    this.MailFrom = sValue;
            }

            sValue = LDecoder.GetValue("MAILPORT");
            if (ReadEmpty) this.MailPort = sValue;
            else
            {
                if (!String.IsNullOrEmpty(sValue))
                    this.MailPort = sValue;
            }
            sValue = LDecoder.GetValue("MAILUSER");
            if (ReadEmpty) this.MailUser = sValue;
            else
            {
                if (!String.IsNullOrEmpty(sValue))
                    this.MailUser = sValue;
            }
            sValue = LDecoder.GetValue("MAILPASS");
            if (ReadEmpty) this.MailPass = sValue;
            else
            {
                if (!String.IsNullOrEmpty(sValue))
                    this.MailPass = sValue;
            }
        }
Exemple #2
0
 /// <summary>
 /// Обновляет глобальные настройки. Пустые параметры не обновляются. Обновляется только если rule=settings
 /// </summary>
 /// <param name="LDecoder"></param>
 public void UpdateGlobal(LineDecoder LDecoder)
 {
     string sValue;
     sValue = LDecoder.GetValue("Rule");
     if (!sValue.Equals("Settings", StringComparison.CurrentCultureIgnoreCase)) return;
     Read(LDecoder, false);
 }
Exemple #3
0
        public RuleLine(string Linestr,string ruleName,Logging log, ref Params param)
        {
            Par = param;
            LDecoder = new LineDecoder(Linestr,Par); // Декодируем строку
            Rule = new RuleRow();
            _isEmpty = false;
            Log = log;

            // Разбор строки
            if (LDecoder.NumKeys == 0) // Строка пуста
            {
                SetVoid();
                return;
            }

            string sValue;

            if (LDecoder.ContainsKey("Section")) // Это начало новой секции
            {
                Par.Section = LDecoder.GetValue("Section");
                SetVoid();
                return;
            }

            // Секции могут быть:
            // Mail, Vars и имена правил

            if (Par.Section.Equals("Mail", StringComparison.CurrentCultureIgnoreCase)
                || Par.Section.Equals("Vars", StringComparison.CurrentCultureIgnoreCase))
            {
                SetVoid();
                return;
            }

            Par.ReadLine(LDecoder);

            if (Par.Debug)
            {
                string val;
                if (!LDecoder.IsVarExpanded(out val))
                {
                    Log.LogMessage(LogType.Error, "Не найдена переменная в строке [" + Par.CurLineNum.ToString()+"] "+val);
                    return;
                }
                else
                    return;
            }

            //inherit=LDecoder.CoverWords(); // Получаем параметры предыдущей строки

            // Rule не задано явно, копируем из section
            //if (!LDecoder.ContainsKey("RULE") && !String.IsNullOrEmpty(Par.Section))
            //{
                //LDecoder.Words.Add("RULE", Par.Section);

            //}

            sValue = LDecoder.GetValue("RULE");
            //sValue = sValue.ToUpper();
            if (String.IsNullOrEmpty(sValue)) // Имя правила пусто
            {
                SetVoid();
                return;
            }
            Rule.RuleName = sValue;
            //Options.UpdateGlobal(LDecoder); // Обновляем глобальные настройки (Если это правило settings)

            if (!Rule.RuleName.Equals(ruleName, StringComparison.CurrentCultureIgnoreCase)) // Имя правила не совпадает
            {
                SetVoid();
                return;
            }

            sValue = LDecoder.GetValue("REN");
            sValue = sValue.ToUpper();
            Rule.Ren = sValue;

            sValue = LDecoder.GetValue("ACT");
            sValue = sValue.ToUpper();
            switch (sValue)
            {
                case "COPY":
                    Rule.Action = TAction.Copy;
                    break;
                case "MOVE":
                    Rule.Action = TAction.Move;
                    break;
                case "SEND":
                    Rule.Action = TAction.Send;
                    break;
                case "SENDMSG":
                    Rule.Action = TAction.SendMsg;
                    break;
                case "RUNWAIT":
                    Rule.Action = TAction.RunWait;
                    break;
                case "RUNNOWAIT":
                    Rule.Action = TAction.RunNoWait;
                    break;
                case "UNRAR":
                    Rule.Action = TAction.UnRar;
                    break;
                case "UNARJ":
                    Rule.Action = TAction.UnArj;
                    break;
                case "UNCAB":
                    Rule.Action = TAction.UnCab;
                    break;
                case "DELETE":
                    Rule.Action = TAction.Delete;
                    break;
                case "MOVENALOGDIR":
                    Rule.Action = TAction.MoveNalogDir;
                    break;
                case "MOVEFTSDIR":
                    Rule.Action = TAction.MoveFTSDir;
                    break;
                case "PBGEN":
                    Rule.Action = TAction.PbGen;
                    break;
                case "MERGENALOGFILE":
                    Rule.Action = TAction.MergeNalogFile;
                    break;
                case "NOTHING":
                    Rule.Action = TAction.Nothing;
                    break;
                case "NO": // Аналог Nothing
                    Rule.Action = TAction.Nothing;
                    break;
                default:
                    SetVoid();
                    return;
                    //break;
            }
            FillFiles(); // Читаем список файлов
        }