private void Page_Load(object sender, System.EventArgs e)
        {
            Response.BufferOutput = true;
            SetPageTitle(L10n.Term("Schedulers.LBL_MODULE_TITLE"));
            // 06/04/2006 Paul.  Visibility is already controlled by the ASPX page, but it is probably a good idea to skip the load.
            this.Visible = SplendidCRM.Security.IS_ADMIN;
            if (!this.Visible)
            {
                return;
            }

            try
            {
                DbProviderFactory dbf = DbProviderFactories.GetFactory();
                using (IDbConnection con = dbf.CreateConnection())
                {
                    string sSQL;
                    sSQL = "select *               " + ControlChars.CrLf
                           + "     , '' as DATE_RANGE" + ControlChars.CrLf
                           + "  from vwSCHEDULERS    " + ControlChars.CrLf
                           + " where 1 = 1           " + ControlChars.CrLf;
                    using (IDbCommand cmd = con.CreateCommand())
                    {
                        cmd.CommandText = sSQL;

                        if (bDebug)
                        {
                            RegisterClientScriptBlock("SQLCode", Sql.ClientScriptBlock(cmd));
                        }

                        using (DbDataAdapter da = dbf.CreateDataAdapter())
                        {
                            ((IDbDataAdapter)da).SelectCommand = cmd;
                            using (DataTable dt = new DataTable())
                            {
                                da.Fill(dt);
                                foreach (DataRow row in dt.Rows)
                                {
                                    string   sJOB_INTERVAL     = Sql.ToString(row["JOB_INTERVAL"]);
                                    DateTime dtDATE_TIME_START = Sql.ToDateTime(row["DATE_TIME_START"]);
                                    DateTime dtDATE_TIME_END   = Sql.ToDateTime(row["DATE_TIME_END"]);
                                    DateTime dtLAST_RUN        = Sql.ToDateTime(row["LAST_RUN"]);
                                    row["JOB_INTERVAL"] = sJOB_INTERVAL + "<br>" + SchedulerUtils.CronDescription(L10n, sJOB_INTERVAL);
                                    if (dtDATE_TIME_START != DateTime.MinValue)
                                    {
                                        row["DATE_RANGE"] = T10n.FromServerTime(dtDATE_TIME_START).ToString() + "-";
                                    }
                                    if (dtDATE_TIME_END == DateTime.MinValue)
                                    {
                                        row["DATE_RANGE"] += L10n.Term("Schedulers.LBL_PERENNIAL");
                                    }
                                    else
                                    {
                                        row["DATE_RANGE"] += T10n.FromServerTime(dtDATE_TIME_END).ToString();
                                    }
                                    if (dtLAST_RUN != DateTime.MinValue)
                                    {
                                        row["LAST_RUN"] = T10n.FromServerTime(dtLAST_RUN);
                                    }
                                    row["STATUS"] = L10n.Term(".scheduler_status_dom.", row["STATUS"]);
                                }
                                vwMain             = dt.DefaultView;
                                grdMain.DataSource = vwMain;
                                if (!IsPostBack)
                                {
                                    grdMain.SortColumn = "NAME";
                                    grdMain.SortOrder  = "asc";
                                    grdMain.ApplySort();
                                    grdMain.DataBind();
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SplendidError.SystemError(new StackTrace(true).GetFrame(0), ex);
                lblError.Text = ex.Message;
            }
        }
Example #2
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            SetPageTitle(L10n.Term(".moduleList.Schedulers"));
            // 06/04/2006 Paul.  Visibility is already controlled by the ASPX page, but it is probably a good idea to skip the load.
            this.Visible = SplendidCRM.Security.IS_ADMIN;
            if (!this.Visible)
            {
                return;
            }

            try
            {
                gID = Sql.ToGuid(Request["ID"]);
                // 11/28/2005 Paul.  We must always populate the table, otherwise it will disappear during event processing.
                //if ( !IsPostBack )
                {
                    if (!Sql.IsEmptyGuid(gID))
                    {
                        DbProviderFactory dbf = DbProviderFactories.GetFactory();
                        using (IDbConnection con = dbf.CreateConnection())
                        {
                            string sSQL;
                            sSQL = "select *           " + ControlChars.CrLf
                                   + "  from vwSCHEDULERS" + ControlChars.CrLf
                                   + " where ID = @ID    " + ControlChars.CrLf;
                            using (IDbCommand cmd = con.CreateCommand())
                            {
                                cmd.CommandText = sSQL;
                                Sql.AddParameter(cmd, "@ID", gID);
                                con.Open();

                                if (bDebug)
                                {
                                    RegisterClientScriptBlock("SQLCode", Sql.ClientScriptBlock(cmd));
                                }

                                using (IDataReader rdr = cmd.ExecuteReader(CommandBehavior.SingleRow))
                                {
                                    if (rdr.Read())
                                    {
                                        ctlModuleHeader.Title = Sql.ToString(rdr["NAME"]);
                                        SetPageTitle(L10n.Term(".moduleList.Schedulers") + " - " + ctlModuleHeader.Title);

                                        string   sJOB_INTERVAL     = Sql.ToString(rdr["JOB_INTERVAL"]);
                                        DateTime dtDATE_TIME_START = Sql.ToDateTime(rdr["DATE_TIME_START"]);
                                        DateTime dtDATE_TIME_END   = Sql.ToDateTime(rdr["DATE_TIME_END"]);
                                        DateTime dtTIME_FROM       = Sql.ToDateTime(rdr["TIME_FROM"]);
                                        DateTime dtTIME_TO         = Sql.ToDateTime(rdr["TIME_TO"]);
                                        DateTime dtLAST_RUN        = Sql.ToDateTime(rdr["LAST_RUN"]);
                                        JOB.Text             = Sql.ToString(rdr["JOB"]);
                                        STATUS.Text          = Sql.ToString(L10n.Term(".scheduler_status_dom.", rdr["STATUS"]));
                                        DATE_TIME_START.Text = (dtDATE_TIME_START == DateTime.MinValue) ? L10n.Term("Schedulers.LBL_PERENNIAL") : T10n.FromServerTime(dtDATE_TIME_START).ToString();
                                        DATE_TIME_END.Text   = (dtDATE_TIME_END == DateTime.MinValue) ? L10n.Term("Schedulers.LBL_PERENNIAL") : T10n.FromServerTime(dtDATE_TIME_END).ToString();
                                        LAST_RUN.Text        = (dtLAST_RUN == DateTime.MinValue) ? L10n.Term("Schedulers.LBL_NEVER") : T10n.FromServerTime(dtLAST_RUN).ToString();
                                        TIME_FROM.Text       = (dtTIME_FROM == DateTime.MinValue) ? L10n.Term("Schedulers.LBL_ALWAYS") : dtTIME_FROM.ToShortTimeString();
                                        TIME_TO.Text         = (dtTIME_TO == DateTime.MinValue) ? L10n.Term("Schedulers.LBL_ALWAYS") : dtTIME_TO.ToShortTimeString();
                                        CATCH_UP.Text        = Sql.ToBoolean(rdr["CATCH_UP"])           ? L10n.Term("Schedulers.LBL_ALWAYS") : L10n.Term("Schedulers.LBL_NEVER");
                                        JOB_INTERVAL.Text    = sJOB_INTERVAL + "<br>" + SchedulerUtils.CronDescription(L10n, sJOB_INTERVAL);
                                        DATE_ENTERED.Text    = T10n.FromServerTime(Sql.ToDateTime(rdr["DATE_ENTERED"])).ToString() + " " + L10n.Term(".LBL_BY") + " " + Sql.ToString(rdr["CREATED_BY"]);
                                        DATE_MODIFIED.Text   = T10n.FromServerTime(Sql.ToDateTime(rdr["DATE_MODIFIED"])).ToString() + " " + L10n.Term(".LBL_BY") + " " + Sql.ToString(rdr["MODIFIED_BY"]);
                                    }
                                }
                            }
                        }
                    }
                }
                // 06/09/2006 Paul.  Remove data binding in the user controls.  Binding is required, but only do so in the ASPX pages.
                //Page.DataBind();
            }
            catch (Exception ex)
            {
                SplendidError.SystemError(new StackTrace(true).GetFrame(0), ex);
                ctlDetailButtons.ErrorText = ex.Message;
            }
        }