Beispiel #1
0
        protected ChartDataBuilder chartDataBuilder; // объект, задающий данные графика

        protected void Page_Load(object sender, EventArgs e)
        {
            AppData  appData  = AppData.GetAppData();
            UserData userData = UserData.GetUserData();

#if DEBUG
            userData.LoginForDebug();
#endif

            // перевод веб-страницы
            Translator.TranslatePage(Page, "Scada.Web.Plugins.Chart.WFrmChart");

            // получение параметров запроса
            // получить номера как массивы для корректной работы в составе дэшборда
            int[]    cnlNums   = Request.QueryString.GetParamAsIntArray("cnlNum");
            int[]    viewIDs   = Request.QueryString.GetParamAsIntArray("viewID");
            int      cnlNum    = cnlNums.Length > 0 ? cnlNums[0] : 0;
            int      viewID    = viewIDs.Length > 0 ? viewIDs[0] : 0;
            DateTime startDate = Request.QueryString.GetParamAsDate(DateTime.Today);

            // проверка входа в систему и прав
            if (!userData.LoggedOn)
            {
                throw new ScadaException(WebPhrases.NotLoggedOn);
            }

            if (!userData.UserRights.GetUiObjRights(viewID).ViewRight)
            {
                throw new ScadaException(CommonPhrases.NoRights);
            }

#if !DEBUG
            // в режиме отладки невозможно получить представление, т.к. плагины не загружены
            BaseView view = userData.UserViews.GetView(viewID, true);

            if (!view.ContainsCnl(cnlNum))
            {
                throw new ScadaException(CommonPhrases.NoRights);
            }

            // вывод заголовков
            Title         = cnlNum + " - " + Title;
            lblTitle.Text = view.Title;
#endif

            // вывод дополнительной информации
            lblStartDate.Text = (string.IsNullOrEmpty(lblTitle.Text) ? "" : ", ") + startDate.ToLocalizedDateString();
            lblGenDT.Text     = DateTime.Now.ToLocalizedString();

            // подготовка данных графика
            chartDataBuilder = new ChartDataBuilder(
                new int[] { cnlNum }, startDate, 1, userData.WebSettings.ChartGap, appData.DataAccess);
            chartDataBuilder.FillData();
        }
Beispiel #2
0
        /// <summary>
        /// Проверить права на одно представление и принадлежность одного канала
        /// </summary>
        protected void CheckRights(int cnlNum, int viewID)
        {
            if (!userRights.GetUiObjRights(viewID).ViewRight)
            {
                throw new ScadaException(CommonPhrases.NoRights);
            }

#if !DEBUG
            BaseView view = GetView(viewID);
            if (!view.ContainsCnl(cnlNum))
            {
                throw new ScadaException(CommonPhrases.NoRights);
            }
#endif
        }
Beispiel #3
0
        /// <summary>
        /// Проверить права на входной канал, который относится к указанному представлению
        /// </summary>
        protected bool CheckRights(int cnlNum, int viewID)
        {
            if (GetUiObjRights(viewID).ViewRight)
            {
#if DEBUG
                return(true);
#else
                BaseView view = viewCache == null ? null : viewCache.GetViewFromCache(viewID);
                return(view != null && view.ContainsCnl(cnlNum));
#endif
            }
            else
            {
                return(false);
            }
        }
Beispiel #4
0
        private int evNum;         // номер события


        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

            // проверка входа в систему
            if (!userData.LoggedOn)
            {
                throw new ScadaException(WebPhrases.NotLoggedOn);
            }

            // скрытие сообщения об ошибке
            pnlErrMsg.HideAlert();

            if (IsPostBack)
            {
                evDate = (DateTime)ViewState["EvDate"];
                evNum  = (int)ViewState["EvNum"];
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(Page, "Scada.Web.Plugins.Table.WFrmEventAck");

                // получение параметров запроса и сохранение во ViewState
                evDate = Request.QueryString.GetParamAsDate(DateTime.Today);
                evNum  = Request.QueryString.GetParamAsInt("evNum");
                ViewState["EvDate"] = evDate;
                ViewState["EvNum"]  = evNum;

                int viewID = Request.QueryString.GetParamAsInt("viewID");

                // получение события
                EventTableLight       tblEvent = appData.DataAccess.DataCache.GetEventTable(evDate);
                EventTableLight.Event ev       = tblEvent.GetEventByNum(evNum);

                if (ev == null)
                {
                    pnlErrMsg.ShowAlert(lblEventNotFound);
                    btnSubmit.Enabled = false;
                }
                else
                {
                    // проверка прав
                    EntityRights rights = userData.UserRights.GetUiObjRights(viewID);
                    if (!rights.ViewRight)
                    {
                        throw new ScadaException(CommonPhrases.NoRights);
                    }

                    if (!userData.UserRights.ViewAllRight)
                    {
                        BaseView view = userData.UserViews.GetView(viewID, true);
                        if (!view.ContainsCnl(ev.CnlNum))
                        {
                            throw new ScadaException(CommonPhrases.NoRights);
                        }
                    }

                    btnSubmit.Visible = pnlTip.Visible =
                        rights.ControlRight && !ev.Checked;

                    // вывод информации по событию
                    pnlInfo.Visible = true;
                    DispEvent dispEvent = appData.DataAccess.GetDispEvent(ev, new DataFormatter());
                    lblNum.Text     = dispEvent.Num.ToString();
                    lblTime.Text    = dispEvent.Time;
                    lblObj.Text     = dispEvent.Obj;
                    lblDev.Text     = dispEvent.KP;
                    lblCnl.Text     = dispEvent.Cnl;
                    lblText.Text    = dispEvent.Text;
                    lblAck.Text     = dispEvent.Ack;
                    lblAck.CssClass = ev.Checked ? "ack-yes" : "ack-no";

                    if (ev.Checked && ev.UserID > 0)
                    {
                        string userName = appData.DataAccess.GetUserName(ev.UserID);
                        lblByUser.Text    = string.Format(lblByUser.Text, userName);
                        lblByUser.Visible = userName != "";
                    }

                    if (dispEvent.Color != "")
                    {
                        try
                        {
                            lblNum.ForeColor     = lblTime.ForeColor = lblObj.ForeColor =
                                lblDev.ForeColor = lblCnl.ForeColor = lblText.ForeColor =
                                    ColorTranslator.FromHtml(dispEvent.Color);
                        }
                        catch { }
                    }
                }
            }
        }
Beispiel #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AppData  appData  = AppData.GetAppData();
            UserData userData = UserData.GetUserData();

#if DEBUG
            userData.LoginForDebug();
            string chartTitle = "Debug";
#endif

            // перевод веб-страницы
            Translator.TranslatePage(Page, "Scada.Web.Plugins.Chart.WFrmChart");

            // получение параметров запроса
            // получить номера как массивы для корректной работы в составе дэшборда
            int[]    cnlNums   = Request.QueryString.GetParamAsIntArray("cnlNum");
            int[]    viewIDs   = Request.QueryString.GetParamAsIntArray("viewID");
            int      cnlNum    = cnlNums.Length > 0 ? cnlNums[0] : 0;
            int      viewID    = viewIDs.Length > 0 ? viewIDs[0] : 0;
            DateTime startDate = Request.QueryString.GetParamAsDate(DateTime.Today);

            // проверка входа в систему и прав
            if (!userData.LoggedOn)
            {
                throw new ScadaException(WebPhrases.NotLoggedOn);
            }

            if (!userData.UserRights.GetUiObjRights(viewID).ViewRight)
            {
                throw new ScadaException(CommonPhrases.NoRights);
            }

#if !DEBUG
            // в режиме отладки невозможно получить представление, т.к. плагины не загружены
            BaseView view = userData.UserViews.GetView(viewID, true);

            if (!view.ContainsCnl(cnlNum))
            {
                throw new ScadaException(CommonPhrases.NoRights);
            }

            // вывод заголовка
            Title = cnlNum + " - " + Title;
            string chartTitle = view.Title;
#endif

            // вывод дополнительной информации
            chartTitle += (string.IsNullOrEmpty(chartTitle) ? "" : ", ") + startDate.ToLocalizedDateString();
            string chartStatus = DateTime.Now.ToLocalizedString();

            // подготовка данных графика
            ChartDataBuilder dataBuilder = new ChartDataBuilder(new int[] { cnlNum }, startDate, 1, appData.DataAccess);
            dataBuilder.FillCnlProps();
            dataBuilder.FillData();

            // build client script
            sbClientScript = new StringBuilder();
            dataBuilder.ToJs(sbClientScript);

            sbClientScript
            .AppendFormat("var locale = '{0}';", Localization.Culture.Name).AppendLine()
            .AppendFormat("var gapBetweenPoints = {0};", userData.WebSettings.ChartGap).AppendLine()
            .AppendFormat("var chartTitle = '{0}';", HttpUtility.JavaScriptStringEncode(chartTitle)).AppendLine()
            .AppendFormat("var chartStatus = '{0}';", chartStatus).AppendLine()
            .AppendLine();
        }