Esempio n. 1
0
    protected void btnCreateAgent_Click(object sender, EventArgs e)
    {
        string agentName = "BackupAgent_" + txbAgentName.Text;
        double hour      = 0;

        double.TryParse(txbHour.Text, out hour);

        DateTime startDate = DateTime.Now.Date;


        BXSchedulerAgent agent = BXSchedulerAgent.GetByName(agentName);

        if (agent != null)
        {
            lblError.Text = string.Format("Агент с именем \"{0}\" уже существует", agentName);
            return;
        }
        else
        {
            lblError.Text = "";
        }

        if (string.IsNullOrEmpty(txbAgentName.Text))
        {
            lblError.Text = string.Format("Введите правильный имя агента", hour);
            return;
        }

        if (hour == 0)
        {
            lblError.Text = string.Format("Введите правильный интервал", hour);
            return;
        }

        try
        {
            int h = int.Parse(txbStartTime.Text.Split(':')[0].TrimStart('0'));
            int m = int.Parse(txbStartTime.Text.Split(':')[1].TrimStart('0'));
            if (h >= 0 && h < 24 && m >= 0 && m < 60)
            {
                startDate = startDate.AddHours((double)h);
                startDate = startDate.AddMinutes((double)m);
            }
            else
            {
                lblError.Text = string.Format("Введите правильный начало", hour);
                return;
            }
        }
        catch
        {
            lblError.Text = string.Format("Введите правильный начало", hour);
            return;
        }

        BuckupOptions option = GetOption();

        agent = new BXSchedulerAgent(agentName);
        agent.Parameters["BackupOptions"] = ToBase64(option);
        agent.Period    = TimeSpan.FromHours(hour);
        agent.Periodic  = true;
        agent.StartTime = startDate;
        agent.SetClassNameAndAssembly(typeof(Bitrix.Modules.BackupAgentExecutor));
        agent.Save();

        AgentGridView.DataBind();
    }