Пример #1
0
        protected void repCnlsByView_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            // добавление выбранного канала в список
            if (e.CommandName == "AddCnl")
            {
                int cnlNum = int.Parse((string)e.CommandArgument);

                if (!selCnlSet.Contains(cnlNum))
                {
                    int         viewID = int.Parse(ddlView.SelectedValue);
                    CnlViewPair pair   = new CnlViewPair(cnlNum, viewID);
                    pair.FillInfo(appData.DataAccess.GetCnlProps(cnlNum), null);

                    selCnls.Add(pair);
                    ViewState.Add("SelCnls", selCnls);

                    btnSubmit.Enabled = true;
                    bool warnWasVisible = pnlPerfWarn.Visible;
                    pnlPerfWarn.Visible = selCnls.Count > ChartUtils.NormalChartCnt;

                    if (pnlPerfWarn.Visible != warnWasVisible)
                    {
                        ChartUtils.AddUpdateModalHeightScript(this);
                    }
                }

                Label lblCnlAdded = (Label)e.Item.FindControl("lblCnlAdded");
                lblCnlAdded.Visible = true;
            }
        }
Пример #2
0
        protected void btnApplyAddedCnls_Click(object sender, EventArgs e)
        {
            // добавление каналов
            if (hidAddedCnlNums.Value != "")
            {
                int[] addedCnls    = WebUtils.QueryParamToIntArray(hidAddedCnlNums.Value);
                int[] addedViewIDs = WebUtils.QueryParamToIntArray(hidAddedViewIDs.Value);
                ChartUtils.CheckArrays(addedCnls, addedViewIDs);
                HashSet <int> selCnlSet = ChartUtils.GetCnlSet(selCnls);

                for (int i = 0, cnt = addedCnls.Length; i < cnt; i++)
                {
                    int cnlNum = addedCnls[i];
                    if (!selCnlSet.Contains(cnlNum))
                    {
                        CnlViewPair pair = new CnlViewPair(cnlNum, addedViewIDs[i]);
                        pair.FillInfo(appData.DataAccess.GetCnlProps(cnlNum), userData.UserViews);
                        selCnls.Add(pair);
                    }
                }

                ViewState.Add("SelCnls", selCnls);
                ShowSelCnls();

                hidAddedCnlNums.Value = "";
                hidAddedViewIDs.Value = "";
            }
        }
Пример #3
0
        protected void btnGenReport_Click(object sender, EventArgs e)
        {
            // проверка параметров отчёта и добавление скрипта генерации отчёта
            if (selCnls.Count > 0)
            {
                DateTime dateFrom;
                DateTime dateTo;
                int      period;
                string   errMsg;

                if (RepUtils.ParseDates(txtDateFrom.Text, txtDateTo.Text, out dateFrom, out dateTo, out errMsg) &&
                    RepUtils.CheckDayPeriod(dateFrom, dateTo, out period, out errMsg))
                {
                    string cnlNums;
                    string viewIDs;
                    ChartUtils.GetSelection(selCnls, out cnlNums, out viewIDs);

                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "GenerateReportScript",
                                                            string.Format("generateReport('{0}', '{1}', {2}, {3}, {4}, {5});",
                                                                          cnlNums, viewIDs, dateFrom.Year, dateFrom.Month, dateFrom.Day, period), true);
                }
                else
                {
                    pnlErrMsg.ShowAlert(errMsg);
                }
            }
        }
Пример #4
0
        protected HashSet <int> selCnlSet;  // множество выбранных каналов


        /// <summary>
        /// Отобразить каналы выбранного представления
        /// </summary>
        private void ShowCnlsByView()
        {
            int viewID;

            int.TryParse(ddlView.SelectedValue, out viewID);
            List <CnlViewPair> cnlsByView = ChartUtils.GetCnlViewPairsByView(
                viewID, appData.DataAccess, userData.UserViews);

            repCnlsByView.DataSource = cnlsByView;
            repCnlsByView.DataBind();
            lblUnableLoadView.Visible = cnlsByView == null;
            lblNoCnlsByView.Visible   = cnlsByView != null && cnlsByView.Count == 0;
        }
Пример #5
0
        /// <summary>
        /// Проверить заданные права на возможность просмотра входных каналов, входящих в указанные представления
        /// </summary>
        /// <remarks>Если проверка не пройдена, вызывается исключение</remarks>
        public void CheckRights(UserRights userRights, int[] cnlNums, int[] viewIDs)
        {
            if (userRights == null)
            {
                throw new ArgumentNullException("userRights");
            }

            ChartUtils.CheckArrays(cnlNums, viewIDs);
            userData        = null;
            this.userRights = userRights;

            if (!userRights.ViewAllRight)
            {
                BaseView singleView;
                CheckRights(cnlNums, viewIDs, out singleView);
            }
        }
Пример #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

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

            if (IsPostBack)
            {
                // получение выбранных каналов
                selCnls   = (List <CnlViewPair>)ViewState["SelCnls"];
                selCnlSet = ChartUtils.GetCnlSet(selCnls);
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(Page, "Scada.Web.Plugins.Chart.WFrmSelectCnls");
                lblPerfWarn.Text = ChartPhrases.PerfWarning;

                // настройка элементов управления
                btnSubmit.Enabled   = false;
                pnlPerfWarn.Visible = false;

                // создание списка выбранных каналов
                selCnls = new List <CnlViewPair>();
                ViewState.Add("SelCnls", selCnls);
                selCnlSet = ChartUtils.GetCnlSet(selCnls);

                // заполнение выпадающего списка представлений и отображение каналов по представлению
                ChartUtils.FillViewList(ddlView, 0, userData.UserViews);
                ShowCnlsByView();
            }
        }
Пример #7
0
        /// <summary>
        /// Проверить права текущего пользователя на просмотр входных каналов, входящих в указанные представления,
        /// а также получить представление, если оно единственное
        /// </summary>
        /// <remarks>Если проверка не пройдена, вызывается исключение</remarks>
        public void CheckRights(UserData userData, int[] cnlNums, int[] viewIDs, out BaseView singleView)
        {
            if (userData == null)
            {
                throw new ArgumentNullException("userData");
            }
            if (!userData.LoggedOn)
            {
                throw new ScadaException(WebPhrases.NotLoggedOn);
            }
            ChartUtils.CheckArrays(cnlNums, viewIDs);

            this.userData = userData;
            userRights    = userData.UserRights;

            if (userRights.ViewAllRight)
            {
                singleView = ElementsEqual(viewIDs) ? GetView(viewIDs[0]) : null;
            }
            else
            {
                CheckRights(cnlNums, viewIDs, out singleView);
            }
        }
Пример #8
0
 protected void ddlView_SelectedIndexChanged(object sender, EventArgs e)
 {
     // выбор каналов по представлению
     ShowCnlsByView();
     ChartUtils.AddUpdateModalHeightScript(this);
 }