Esempio n. 1
0
        protected void btnEnter_Click(object sender, System.EventArgs e)
        {
            UserData userData        = UserData.GetUserData();
            bool     alreadyLoggedOn = userData.LoggedOn;
            string   errMsg          = "";

            if (alreadyLoggedOn || userData.Login(txtLogin.Text, txtPassword.Text, out errMsg))
            {
                // проверка прав пользователя на выбранный набор представлений
                int            viewSetIndex = ddlViewSet.SelectedIndex;
                string         viewSetName  = userData.ViewSettings.ViewSetList[viewSetIndex].Name;
                MainData.Right viewSetRight = userData.GetViewSetRight(viewSetIndex);

                if (viewSetRight.ViewRight)
                {
                    // сохранение в cookie информации о входе пользователя
                    if (!alreadyLoggedOn)
                    {
                        userData.RememberUser(Context, !chkRememberUser.Checked);
                    }

                    // сохранение в cookie выбранного набора представлений
                    HttpCookie cookie = new HttpCookie("ScadaViewSet");
                    cookie.Value   = Server.UrlEncode(viewSetName);
                    cookie.Expires = DateTime.Now.Add(ScadaUtils.CookieExpiration);
                    Response.SetCookie(cookie);

                    // переход на страницу данных
                    Response.Redirect("~/Main.aspx?viewSet=" + viewSetIndex, false);
                }
                else
                {
                    errMsg = WebPhrases.NoViewSetRights;
                }
            }

            if (!string.IsNullOrEmpty(errMsg))
            {
                AddShowErrorScript(string.Format(WebPhrases.UnableLogin, errMsg));
            }
        }
Esempio n. 2
0
        protected string viewFileNameArrStr; // строковая запись массива имён файлов представлений

        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

            // получение данных пользователя
            UserData userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(Context);

            // перевод веб-страницы
            Localization.TranslatePage(this, "Scada.Web.WFrmMain");

            // определение индекса выбранного при входе набора представлений
            int viewSetInd;

            int.TryParse(Request.Params["viewSet"], out viewSetInd);
            viewSetIndStr = viewSetInd.ToString();

            // получение выбранного набора представлений, если на него есть права
            ViewSettings.ViewSet viewSet = null;
            int viewCnt = 0;

            if (userData.GetViewSetRight(viewSetInd).ViewRight)
            {
                List <ViewSettings.ViewSet> viewSetList = userData.ViewSettings.ViewSetList;

                if (0 <= viewSetInd && viewSetInd < viewSetList.Count)
                {
                    viewSet = viewSetList[viewSetInd];
                    viewCnt = viewSet.Count;

                    // вывод заголовка страницы
                    Title = "SCADA - " + viewSet.Name;

                    // заполнение списка представлений
                    bool first = true;
                    for (int i = 0; i < viewCnt; i++)
                    {
                        if (userData.GetViewRight(viewSetInd, i).ViewRight)
                        {
                            ListItem item = new ListItem(viewSet[i].Title, i.ToString());
                            item.Selected = first;
                            ddlView.Items.Add(item);
                            first = false;
                        }
                    }
                }
            }

            // заполнение списков дней, месяцев и годов, выбор текущей даты
            DateTime today  = DateTime.Today;
            int      curDay = today.Day;

            for (int day = 1; day <= 31; day++)
            {
                string   dayStr = day.ToString();
                ListItem item   = new ListItem(day < 10 ? "0" + dayStr : dayStr, dayStr);
                item.Selected = day == curDay;
                ddlDay.Items.Add(item);
            }

            int curMonth = today.Month;

            string[] monthNames = Localization.Culture.DateTimeFormat.MonthNames;

            for (int month = 1; month <= 12; month++)
            {
                ListItem item = new ListItem(monthNames[month - 1], month.ToString());
                item.Selected = month == curMonth;
                ddlMonth.Items.Add(item);
            }

            for (int i = 0, year = today.Year; i < 10; i++, year--)
            {
                string   yearStr = year.ToString();
                ListItem item    = new ListItem(yearStr, yearStr);
                item.Selected = i == 0;
                ddlYear.Items.Add(item);
            }

            // добавление скрипта перемещения выпадающего списка дней после списка месяцев, если необходимо
            if (Localization.DayAfterMonth)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Startup", "PlaceDayAfterMonth();", true);
            }

            // привязка событий
            ddlView.Attributes["onchange"]    = "ShowData()";
            ddlDay.Attributes["onchange"]     = "ShowData()";
            ddlMonth.Attributes["onchange"]   = "ShowData()";
            ddlYear.Attributes["onchange"]    = "ShowData()";
            rbStage1.Attributes["onclick"]    = "ShowView()";
            rbStage2.Attributes["onclick"]    = "ShowView()";
            rbStageFull.Attributes["onclick"] = "ShowView()";

            // настройка отображения событий и фрейма для проверка входа в систему
            pnlEvents.Visible         = AppData.WebSettings.EventCnt > 0;
            frameLoginChecker.Visible = !pnlEvents.Visible;

            // формирование массивов, описывающих представления
            if (viewCnt > 0)
            {
                string[] viewTypeArr     = new string[viewCnt];
                string[] viewFileNameArr = new string[viewCnt];

                for (int i = 0; i < viewCnt; i++)
                {
                    ViewSettings.ViewInfo viewInfo = viewSet[i];
                    viewTypeArr[i]     = "\"" + viewInfo.Type + "\"";
                    viewFileNameArr[i] = "\"" + viewInfo.FileName + "\"";
                }

                viewTypeArrStr     = "[" + string.Join(", ", viewTypeArr) + "]";
                viewFileNameArrStr = "[" + string.Join(", ", viewFileNameArr) + "]";
            }
            else
            {
                viewTypeArrStr     = "\"\"";
                viewFileNameArrStr = "\"\"";
            }
        }