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

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

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

            // установка фильтра событий
            if (userData.Role == ServerComm.Roles.Custom)
            {
                rbEvView.Checked = true;
                rbEvAll.Enabled  = false;
            }
            else if (AppData.WebSettings.EventFltr)
            {
                rbEvView.Checked = true;
            }
            else
            {
                rbEvAll.Checked = true;
            }
        }
Exemple #2
0
 protected void Session_Start(object sender, EventArgs e)
 {
     // добавление информации о пользователе
     AppData.GetAppData().UserMonitor.AddUser(UserData.GetUserData());
     // setup the translator
     Translator.AppendProductName = true;
 }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                AppData  appData  = AppData.GetAppData();
                UserData userData = UserData.GetUserData();
                userData.CheckLoggedOn(true);

                // получение ид. пользователя из параметров запроса
                int userID;
                if (!int.TryParse(Request.QueryString["userID"], out userID))
                {
                    userID = userData.UserProps.UserID;
                }

                // проверка прав
                bool self = userData.UserProps.UserID == userID;
                if (!(self || userData.UserRights.ConfigRight))
                {
                    throw new ScadaException(CommonPhrases.NoRights);
                }

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

                // получение свойств и прав пользователя
                UserProps  userProps;
                UserRights userRights;

                if (self)
                {
                    userProps  = userData.UserProps;
                    userRights = userData.UserRights;
                }
                else
                {
                    userProps = appData.DataAccess.GetUserProps(userID);

                    if (userProps == null)
                    {
                        throw new ScadaException(Localization.UseRussian ?
                                                 "Пользователь не найден" :
                                                 "User not found");
                    }
                    else
                    {
                        userRights = new UserRights();
                        userRights.InitGeneralRights(userProps.RoleID);
                    }
                }

                // вывод информации на форму
                lblUserName.Text = userProps.UserName;
                lblRoleName.Text = userProps.RoleName;

                lblViewAllRight.Text    = RightToStr(userRights.ViewAllRight);
                lblControlAllRight.Text = RightToStr(userRights.ControlAllRight);
                lblConfigRight.Text     = RightToStr(userRights.ConfigRight);
            }
        }
Exemple #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            userData = UserData.GetUserData();
            userData.CheckLoggedOn(true);

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

            Localization.Dict dict;
            Localization.Dictionaries.TryGetValue("Scada.Web.WFrmView.Js", out dict);
            phrases = WebUtils.DictionaryToJs(dict);

            // получение ид. и ссылки представления для загрузки
            initialViewID = Request.QueryString.GetParamAsInt("viewID");
            ViewNode viewNode;

            if (initialViewID > 0)
            {
                viewNode = userData.UserViews.GetViewNode(initialViewID);
            }
            else
            {
                viewNode      = userData.UserViews.GetFirstViewNode();
                initialViewID = viewNode == null ? 0 : viewNode.ViewID;
            }

            initialViewUrl = viewNode == null || string.IsNullOrEmpty(viewNode.ViewUrl) ?
                             ResolveUrl(UrlTemplates.NoView) : viewNode.ViewUrl;

            ((MasterMain)Master).SelectedViewID = initialViewID;
        }
Exemple #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

            if (IsPostBack)
            {
                Title = (string)ViewState["Title"];
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(this, "Scada.Web.WFrmLogin");
                ViewState["Title"] = Title;

                Localization.Dict dict;
                Localization.Dictionaries.TryGetValue("Scada.Web.WFrmLogin.Js", out dict);
                phrases = WebUtils.DictionaryToJs(dict);

                // вывод сообщения, заданного в параметрах запроса
                string alert        = Request.QueryString["alert"];
                bool   alertIsEmpty = string.IsNullOrEmpty(alert);
                if (!alertIsEmpty)
                {
                    AddShowAlertScript(alert);
                }

                // переход на стартовую страницу, если вход выполнен
                if (alertIsEmpty)
                {
                    if (userData.LoggedOn)
                    {
                        GoToStartPage();
                    }
                    else if (userData.WebSettings.RemEnabled)
                    {
                        // обработка сохранённого входа в систему
                        string username;
                        if (appData.RememberMe.ValidateUser(Context, out username, out alert) &&
                            userData.Login(username, out alert))
                        {
                            GoToStartPage();
                        }
                        else if (alert != "")
                        {
                            AddShowAlertScript(alert);
                        }
                    }
                }

                // настройка элементов управления
                pnlRememberMe.Visible = userData.WebSettings.RemEnabled;
                txtUsername.Text      = userData.LoggedOn ?
                                        userData.UserProps.UserName :
                                        appData.RememberMe.RestoreUsername(Context); // из cookie

                // добавление скрипта проверки браузера
                AddCheckBrowserSupportScript();
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     // login check
     if (!UserData.GetUserData().LoggedOn)
     {
         throw new ScadaException(WebPhrases.NotLoggedOn);
     }
 }
Exemple #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

            // проверка входа в систему
            userData.CheckLoggedOn(true);
        }
Exemple #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            UserData userData = UserData.GetUserData();

            userData.CheckLoggedOn(false);

            // получение информации о представлении
            int      viewId   = Request.QueryString.GetParamAsInt("viewID");
            ViewNode viewNode = userData.UserViews.GetViewNode(viewId);

            // переход на соответствующую веб-страницу
            Response.Redirect(viewNode == null || string.IsNullOrEmpty(viewNode.ViewUrl) ?
                              UrlTemplates.NoView : viewNode.ViewUrl);
        }
Exemple #9
0
        protected void btnExit_Click(object sender, EventArgs e)
        {
            UserData userData = UserData.GetUserData();

            userData.Logout();
            UserDataExt.ForgetUserLoggedOn(Context);

            lblLoginTitle.Visible    = true;
            lblLoggedOnTitle.Visible = false;
            txtLogin.Text            = "";
            txtLogin.Enabled         = txtPassword.Enabled = true;
            chkRememberUser.Visible  = AppData.WebSettings.RemEnabled;
            btnExit.Visible          = false;
        }
Exemple #10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // перевод веб-страницы
            Translator.TranslatePage(this, "Scada.Web.WFrmReports");

            // установка источника данных для списка отчётов
            UserData userData = UserData.GetUserData();

            if (userData.UserContent != null && userData.UserContent.ReportItems.Count > 0)
            {
                repReports.DataSource = userData.UserContent.ReportItems;
                repReports.DataBind();
                lblNoReports.Visible = false;
            }
        }
Exemple #11
0
        /// <summary>
        /// Отправить команду, получив её параметры из элементов управления
        /// </summary>
        private void SendCmd(int ctrlCnlNum, double cmdVal, byte[] cmdData)
        {
            bool       sendOk;
            bool       result;
            ServerComm serverComm = AppData.MainData.ServerComm;
            int        userID     = UserData.GetUserData().UserID;
            View       activeView = mvCommand.Visible ? mvCommand.GetActiveView() : null;

            if (activeView == viewStandCmd1 || activeView == viewStandCmd1Simple || activeView == viewStandCmd2)
            {
                sendOk = serverComm.SendStandardCommand(userID, ctrlCnlNum, cmdVal, out result);
            }
            else if (activeView == viewBinCmd)
            {
                sendOk = serverComm.SendBinaryCommand(userID, ctrlCnlNum, cmdData, out result);
            }
            else
            {
                int kpNum;
                try { kpNum = (int)ViewState["KPNum"]; }
                catch { kpNum = 0; }
                sendOk = serverComm.SendRequestCommand(userID, ctrlCnlNum, kpNum, out result);
            }

            if (sendOk)
            {
                mvMain.SetActiveView(viewResult);

                if (result)
                {
                    // добавление скрипта, чтобы закрыть окно команды при простой отправке
                    if (activeView == viewStandCmd1Simple)
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "Startup", "window.close();", true);
                    }
                }
                else
                {
                    lblResultSuccessful.Visible = false;
                    lblResultFailed.Visible     = true;
                }
            }
            else
            {
                lblMessage.Text    = string.Format(WebPhrases.ErrorFormat, WebPhrases.ServerUnavailable);
                lblMessage.Visible = true;
            }
        }
Exemple #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();
            userData.CheckLoggedOn(true);

            if (!IsPostBack)
            {
                // перевод веб-страницы
                Translator.TranslatePage(Page, "Scada.Web.MasterMain");

                // настройка элементов управления
                hlMainUser.Text        = userData.UserProps.UserName;
                hlMainUser.NavigateUrl = string.Format(UrlTemplates.User, userData.UserProps.UserID);
            }
        }
Exemple #13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();
            userData.CheckLoggedOn(true);

            if (!IsPostBack)
            {
                // перевод веб-страницы
                Translator.TranslatePage(Page, "Scada.Web.MasterMain");

                // настройка элементов управления
                lblProductName.Text    = CommonPhrases.ProductName;
                hlMainUser.Text        = userData.UserProps.UserName;
                hlMainUser.NavigateUrl = GetUserProfileUrl();
            }
        }
Exemple #14
0
 public string Login(string username, string password)
 {
     try
     {
         UserData userData = UserData.GetUserData();
         string   errMsg;
         bool     loggedOn = userData.Login(username, password, out errMsg);
         return(JsSerializer.Serialize(new DataTransferObject(loggedOn)));
     }
     catch (Exception ex)
     {
         AppData.Log.WriteException(ex, Localization.UseRussian ?
                                    "Ошибка при выполнении входа пользователя в систему" :
                                    "Error performing user login");
         return(GetErrorDtoJs(ex));
     }
 }
Exemple #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

            if (IsPostBack)
            {
                Title = (string)ViewState["Title"];
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(this, "Scada.Web.WFrmLogin");
                ViewState["Title"] = Title;

                // вывод сообщения, заданного в параметрах запроса
                string alert        = Request.QueryString["alert"];
                bool   alertIsEmpty = string.IsNullOrEmpty(alert);
                if (!alertIsEmpty)
                {
                    AddShowAlertScript(alert);
                }

                // обработка сохранённого входа в систему
                if (alertIsEmpty && !userData.LoggedOn && userData.WebSettings.RemEnabled)
                {
                    string username;
                    if (appData.RememberMe.ValidateUser(Context, out username, out alert) &&
                        userData.Login(username, out alert))
                    {
                        GoToStartPage();
                    }
                    else if (alert != "")
                    {
                        AddShowAlertScript(alert);
                    }
                }

                // настройка элементов управления
                pnlRememberMe.Visible = userData.WebSettings.RemEnabled;
                txtUsername.Text      = userData.LoggedOn ?
                                        userData.UserName :
                                        appData.RememberMe.RestoreUsername(Context); // из cookie
            }
        }
Exemple #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

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

            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (userData.LoggedOn)
            {
                AddRefreshScript();
            }
            else
            {
                AddLoginScript();
            }
        }
Exemple #17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // перевод веб-страницы
            Localization.TranslatePage(this, "Scada.Web.WFrmInfo");

            // вывод информации на форму
            UserData userData = UserData.GetUserData();

            lblServer.Text = AppData.MainData.ServerComm.CommSettings.ServerHost;

            if (userData.LoggedOn)
            {
                lblUser.Text = userData.UserLogin + " (" + userData.RoleName + ")";
            }
            else
            {
                lblUser.Visible            = false;
                lblUserNotLoggedOn.Visible = true;
            }
        }
Exemple #18
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));
            }
        }
Exemple #19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

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

            // проверка входа в систему
            userData.CheckLoggedOn(Context, false);
            if (!userData.LoggedOn)
            {
                AddLoginScript();
                return;
            }

            // определение даты запрашиваемых событий
            DateTime reqDate;

            try
            {
                reqDate = new DateTime(int.Parse(Request["year"]),
                                       int.Parse(Request["month"]), int.Parse(Request["day"]));
            }
            catch
            {
                reqDate = DateTime.MinValue;
            }

            // обновление событий, получение их временной метки
            if (reqDate > DateTime.MinValue)
            {
                EventTableLight eventTable;
                AppData.MainData.RefreshEvents(reqDate, out eventTable);
                hidEvStamp.Value = eventTable.FileModTime.Ticks.ToString();
            }

            // добавление скрипта обновления данной страницы
            AddRefreshScript(AppData.WebSettings.EventRefrFreq * 1000);
        }
Exemple #20
0
        protected void btnCheck_Click(object sender, EventArgs e)
        {
            // отправка команды квитирования
            bool result;

            if (AppData.MainData.ServerComm.CheckEvent(UserData.GetUserData().UserID,
                                                       (DateTime)ViewState["Date"], (int)ViewState["EvNum"], out result))
            {
                mvMain.ActiveViewIndex = 1;

                if (!result)
                {
                    lblResultSuccessful.Visible = false;
                    lblResultFailed.Visible     = true;
                }
            }
            else
            {
                lblMessage.Text    = string.Format(WebPhrases.ErrorFormat, WebPhrases.ServerUnavailable);
                lblMessage.Visible = true;
            }
        }
Exemple #21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

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

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

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

            // определение индексов выбранного представления
            int viewSetIndex, viewIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // получение представления и прав пользователя на него
            BaseView view;

            MainData.Right right;
            userData.GetView(null, viewSetIndex, viewIndex, out view, out right);

            // вывод сообщения о загрузке
            if (view == null && right.ViewRight)
            {
                lblLoading.Visible = true;
                tblEv.Visible      = false;
                hidEvStamp.Value   = "-1";
                return;
            }

            // определение фильтра событий
            bool showAllEvents = Request["filter"] == "all";

            // проверка загрузки представления и прав на просмотр информации
            if (view == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.ViewRight || showAllEvents && userData.Role == ServerComm.Roles.Custom)
            {
                throw new Exception(CommonPhrases.NoRights);
            }

            // определение параметров запроса
            int year, month, day;

            int.TryParse(Request["year"], out year);
            int.TryParse(Request["month"], out month);
            int.TryParse(Request["day"], out day);

            DateTime reqDate;

            try
            {
                reqDate = new DateTime(year, month, day);
            }
            catch
            {
                throw new Exception(WebPhrases.IncorrectDate);
            }

            // получение обновлённых данных событий
            EventTableLight eventTable;

            AppData.MainData.RefreshEvents(reqDate, out eventTable);
            hidEvStamp.Value = eventTable.FileModTime.Ticks.ToString();

            List <int> cnlList = showAllEvents ? null : view.CnlList;
            List <MainData.EventView> events = AppData.MainData.ConvertEvents(
                AppData.MainData.GetLastEvents(eventTable, cnlList, AppData.WebSettings.EventCnt));

            if (events.Count > 0)
            {
                for (int eventInd = events.Count - 1; eventInd >= 0; eventInd--)
                {
                    MainData.EventView eventView = events[eventInd];
                    TableRow           row       = new TableRow();
                    WFrmTableView.NewCell(row, eventView.Num, "c");
                    WFrmTableView.NewCell(row, eventView.Date, "c");
                    WFrmTableView.NewCell(row, eventView.Time, "c");
                    WFrmTableView.NewCell(row, eventView.Obj);
                    WFrmTableView.NewCell(row, eventView.KP);
                    WFrmTableView.NewCell(row, eventView.Cnl);
                    WFrmTableView.NewCell(row, eventView.Text);

                    // установка номера события для воспроизведения звука при загрузке страницы
                    if (eventView.Sound && string.IsNullOrEmpty(hidSndEvNum.Value))
                    {
                        hidSndEvNum.Value = eventView.Num;
                    }

                    // формирование ячейки квитирования
                    if (right.CtrlRight && !eventView.Check)
                    {
                        string chkCellText = "<a href=\"javascript:CheckEvent(" + viewSetIndex + ", " + viewIndex +
                                             ", " + year + ", " + month + ", " + day + ", " + eventView.Num +
                                             ")\" style=\"color: " + eventView.Color + "\">" + eventView.User + "</a>";
                        WFrmTableView.NewCell(row, chkCellText, "c");
                    }
                    else
                    {
                        WFrmTableView.NewCell(row, eventView.User, "c");
                    }

                    // установка свойств строки таблицы
                    WFrmTableView.SetCssClass(row, eventInd % 3 == 2, eventInd == 0);
                    string color = eventView.Color;
                    if (!(color == "" || color.ToLower() == "black"))
                    {
                        row.ForeColor = Color.FromName(color);
                    }
                    tblEv.Rows.Add(row);
                }
            }
            else
            {
                lblNoData.Visible = true;
                tblEv.Visible     = false;
            }
        }
Exemple #22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string errDetails = "";

            try
            {
                // настройка выходного потока
                Response.ClearContent();
                Response.TrySkipIisCustomErrors = true;

                // перевод веб-страницы
                Translator.TranslatePage(this, "Scada.Web.WFrmError");
                lblProductName.Text = CommonPhrases.ProductName;

                // определение сообщения об ошибке
                Exception ex = Server.GetLastError();

                if (ex != null)
                {
                    if (ex.InnerException != null)
                    {
                        ex = ex.InnerException;
                    }

                    if (ex is HttpException)
                    {
                        Response.StatusCode = ((HttpException)ex).GetHttpCode();
                    }

                    errDetails = ex.Message;
                }

                // вывод информации об ошибке в журнал приложения
                StringBuilder sbLogMsg = new StringBuilder();
                sbLogMsg
                .Append(Localization.UseRussian ? "Ошибка приложения: " : "Application error: ");

                if (ex != null)
                {
                    sbLogMsg
                    .AppendLine()
                    .Append(ex.ToString());
                }

                sbLogMsg
                .AppendLine()
                .Append(Localization.UseRussian ? "Страница: " : "Page: ")
                .Append(Request.Url.AbsoluteUri);

                if (Context.Session != null)
                {
                    UserData userData = UserData.GetUserData();
                    if (userData != null)
                    {
                        sbLogMsg
                        .AppendLine()
                        .Append(Localization.UseRussian ? "Пользователь: " : "User: "******"вход не выполнен" : "not logged on"));
                    }
                }

                AppData.GetAppData().Log.WriteAction(sbLogMsg.ToString(), Log.ActTypes.Exception);
            }
            finally
            {
                // вывод сообщения об ошибке на форму
                if (errDetails != "")
                {
                    lblErrDetails.Text = WebUtils.HtmlEncodeWithBreak(errDetails);
                }
                else
                {
                    lblErrDetailsCaption.Visible = lblErrDetails.Visible = false;
                }

                Server.ClearError();
            }
        }
Exemple #23
0
 protected void Session_Start(object sender, EventArgs e)
 {
     // добавление информации о пользователе
     AppData.GetAppData().UserMonitor.AddUser(UserData.GetUserData());
 }
Exemple #24
0
        protected void btnExecute_Click(object sender, EventArgs e)
        {
            // проверка пароля
            if (pnlPassword.Visible)
            {
                int    roleID;
                string errMsg;
                AppData.MainData.CheckUser(UserData.GetUserData().UserLogin, txtPassword.Text, true,
                                           out roleID, out errMsg);
                if (errMsg != "")
                {
                    lblMessage.Text = string.Format(WebPhrases.ErrorFormat, errMsg);
                }
            }

            // получение и проверка параметров команды
            int    ctrlCnlNum = (int)ViewState["CtrlCnlNum"];
            double cmdVal     = 0.0;

            byte[] cmdData    = null;
            View   activeView = mvCommand.Visible ? mvCommand.GetActiveView() : null;

            if (lblMessage.Text == "")
            {
                if (activeView == viewStandCmd1)
                {
                    if (!double.TryParse(rblCmdVal.SelectedValue, out cmdVal))
                    {
                        lblMessage.Text = string.Format(WebPhrases.ErrorFormat, WebPhrases.CmdNotSelected);
                    }
                }
                else if (activeView == viewStandCmd2)
                {
                    cmdVal = ScadaUtils.StrToDouble(txtCmdVal.Text);
                    if (double.IsNaN(cmdVal))
                    {
                        lblMessage.Text = string.Format(WebPhrases.ErrorFormat, WebPhrases.IncorrectCmdVal);
                    }
                }
                else if (activeView == viewBinCmd)
                {
                    if (txtCmdData.Text.Length > 0)
                    {
                        if (rbStr.Checked)
                        {
                            cmdData = Encoding.Default.GetBytes(txtCmdData.Text);
                        }
                        else
                        {
                            if (!ScadaUtils.HexToBytes(txtCmdData.Text, out cmdData))
                            {
                                lblMessage.Text = string.Format(WebPhrases.ErrorFormat,
                                                                WebPhrases.IncorrectCmdData);
                            }
                        }
                    }
                    else
                    {
                        lblMessage.Text = string.Format(WebPhrases.ErrorFormat, WebPhrases.EmptyCmdData);
                    }
                }
            }

            // отправка команды
            if (lblMessage.Text == "")
            {
                SendCmd(ctrlCnlNum, cmdVal, cmdData);
            }

            // отображение сообщения об ошибке
            if (lblMessage.Text != "")
            {
                lblMessage.Visible = true;
            }
        }
Exemple #25
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // получение данных пользователя
            UserData userData = UserData.GetUserData();

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

            // определение индексов выбранного представления
            int viewSetIndex, viewIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // определение номера канала управления
            int ctrlCnlNum;

            int.TryParse(Request["ctrlCnlNum"], out ctrlCnlNum);

            // получение представления и прав пользователя на него
            BaseView view;

            MainData.Right right;
            userData.GetView(null, viewSetIndex, viewIndex, out view, out right);

            // проверка загрузки представления и прав на отправку команды
            if (view == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.CtrlRight || !AppData.WebSettings.CmdEnabled || !view.ContainsCtrlCnl(ctrlCnlNum))
            {
                throw new Exception(CommonPhrases.NoRights);
            }

            // очистка сообщения об ошибке
            lblMessage.Text    = "";
            lblMessage.Visible = false;

            // установка кнопки по умолчанию
            Form.DefaultButton = btnExecute.UniqueID;

            if (IsPostBack)
            {
                // восстановление заголовка страницы
                Title = (string)ViewState["Title"];

                // установка активного элемента формы по умолчанию
                if (pnlPassword.Visible)
                {
                    Form.DefaultFocus = txtPassword.ClientID;
                }
                else
                {
                    View activeView = mvCommand.Visible ? mvCommand.GetActiveView() : null;
                    if (activeView == viewStandCmd2)
                    {
                        Form.DefaultFocus = txtCmdVal.ClientID;
                    }
                    else if (activeView == viewBinCmd)
                    {
                        Form.DefaultFocus = txtCmdData.ClientID;
                    }
                }
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(this, "Scada.Web.WFrmCmdSend");
                ViewState["Title"] = Title;

                // вывод свойств канала управления
                CtrlCnlProps ctrlCnlProps = AppData.MainData.GetCtrlCnlProps(ctrlCnlNum);

                if (ctrlCnlProps == null)
                {
                    throw new Exception(string.Format(WebPhrases.OutCnlNotFound, ctrlCnlNum));
                }
                else
                {
                    lblCtrlCnl.Text = ctrlCnlProps.CtrlCnlName;
                    lblObj.Text     = ctrlCnlProps.ObjName;
                    lblKP.Text      = ctrlCnlProps.KPName;

                    ViewState.Add("CtrlCnlNum", ctrlCnlProps.CtrlCnlNum);
                    ViewState.Add("KPNum", ctrlCnlProps.KPNum);

                    // установка видимости поля для ввода пароля
                    pnlPassword.Visible = !AppData.WebSettings.SimpleCmd;

                    // установка типа команды и определение фокуса по умолчанию
                    string defaultFocus = "";
                    if (ctrlCnlProps.CmdTypeID == 0 /*стандартная команда*/)
                    {
                        if (ctrlCnlProps.CmdValArr == null)
                        {
                            // установка представления для ввода значения команды вручную
                            mvCommand.SetActiveView(viewStandCmd2);
                            defaultFocus = txtCmdVal.ClientID;
                        }
                        else if (AppData.WebSettings.SimpleCmd)
                        {
                            // настройка элементов для выполнения команды по нажатию кнопки со значением
                            List <CmdValInfo> cmdValInfoList = new List <CmdValInfo>();
                            for (int i = 0; i < ctrlCnlProps.CmdValArr.Length; i++)
                            {
                                string cmdText = ctrlCnlProps.CmdValArr[i];
                                if (cmdText != "")
                                {
                                    cmdValInfoList.Add(new CmdValInfo()
                                    {
                                        CndInd = cmdValInfoList.Count, CmdVal = i, CmdText = cmdText
                                    });
                                }
                            }

                            mvCommand.SetActiveView(viewStandCmd1Simple);
                            repCmdVal.DataSource = cmdValInfoList;
                            repCmdVal.DataBind();
                            btnExecute.Visible = false;
                        }
                        else
                        {
                            // настройка элементов для выбора значения команды с помощью радиокнопок
                            mvCommand.SetActiveView(viewStandCmd1);

                            for (int i = 0; i < ctrlCnlProps.CmdValArr.Length; i++)
                            {
                                string cmdVal = ctrlCnlProps.CmdValArr[i];
                                if (cmdVal != "")
                                {
                                    rblCmdVal.Items.Add(new ListItem(cmdVal, i.ToString()));
                                }
                            }
                        }
                    }
                    else if (ctrlCnlProps.CmdTypeID == 1 /*бинарная команда*/)
                    {
                        mvCommand.SetActiveView(viewBinCmd);
                        defaultFocus = txtCmdData.ClientID;
                    }
                    else // команда опроса КП
                    {
                        mvCommand.Visible = false;
                    }

                    // установка активного элемента формы по умолчанию
                    if (pnlPassword.Visible)
                    {
                        Form.DefaultFocus = txtPassword.ClientID;
                    }
                    else if (defaultFocus != "")
                    {
                        Form.DefaultFocus = defaultFocus;
                    }
                }
            }
        }
Exemple #26
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // получение данных пользователя
            UserData userData = UserData.GetUserData();

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

            // очистка сообщения об ошибке
            lblMessage.Text    = "";
            lblMessage.Visible = false;

            // установка активного элемента формы и кнопки по умолчанию
            Form.DefaultFocus  = btnCheck.ClientID;
            Form.DefaultButton = btnCheck.UniqueID;

            if (IsPostBack)
            {
                Title = (string)ViewState["Title"];
            }
            else
            {
                // перевод веб-страницы
                Localization.TranslatePage(this, "Scada.Web.WFrmEvCheck");

                // определение параметров квитирования
                DateTime date;
                int      evNum;

                try
                {
                    date = new DateTime(int.Parse(Request["year"]), int.Parse(Request["month"]),
                                        int.Parse(Request["day"]));
                    ViewState.Add("Date", date);
                }
                catch
                {
                    throw new Exception(WebPhrases.IncorrectEvDate);
                }

                try
                {
                    evNum = int.Parse(Request["evNum"]);
                    ViewState.Add("EvNum", evNum);
                }
                catch
                {
                    throw new Exception(WebPhrases.IncorrectEvNum);
                }

                // вывод номера и даты события
                lblNum.Text  = evNum.ToString();
                lblDate.Text = date.ToString("d", Localization.Culture);

                // получение квитируемого события
                EventTableLight eventTable;
                AppData.MainData.RefreshEvents(date, out eventTable);
                EventTableLight.Event ev = AppData.MainData.GetEventByNum(eventTable, evNum);

                if (ev == null)
                {
                    lblMessage.Text    = string.Format(WebPhrases.ErrorFormat, WebPhrases.EventNotFound);
                    lblMessage.Visible = true;

                    lblTime.Text     = lblObj.Text = lblKP.Text = lblCnl.Text = lblEvent.Text = "";
                    btnCheck.Enabled = false;
                }
                else
                {
                    // определение индексов выбранного представления
                    int viewSetIndex, viewIndex;
                    if (!int.TryParse(Request["viewSet"], out viewSetIndex))
                    {
                        viewSetIndex = -1;
                    }
                    if (!int.TryParse(Request["view"], out viewIndex))
                    {
                        viewIndex = -1;
                    }

                    // получение представления и прав пользователя на него
                    BaseView       view;
                    MainData.Right right;
                    userData.GetView(null, viewSetIndex, viewIndex, out view, out right);

                    // проверка загрузки представления и прав на квитирование
                    if (view == null)
                    {
                        throw new Exception(WebPhrases.UnableLoadView);
                    }
                    else if (!right.CtrlRight || userData.Role == ServerComm.Roles.Custom &&
                             !view.CnlList.Contains(ev.CnlNum))
                    {
                        throw new Exception(CommonPhrases.NoRights);
                    }

                    MainData.EventView eventView = AppData.MainData.ConvertEvent(ev);
                    lblTime.Text  = eventView.Time;
                    lblObj.Text   = eventView.Obj;
                    lblKP.Text    = eventView.KP;
                    lblCnl.Text   = eventView.Cnl;
                    lblEvent.Text = eventView.Text;

                    lblNum.ForeColor     = lblDate.ForeColor = lblTime.ForeColor = lblObj.ForeColor =
                        lblCnl.ForeColor = lblEvent.ForeColor = Color.FromName(eventView.Color);
                }
            }
        }
Exemple #27
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // получение данных пользователя
            UserData userData = UserData.GetUserData();

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

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

            // заполнение списка отчётов
            DirectoryInfo dirInfo = new DirectoryInfo(AppData.BinDir);
            SortedList <string, RepBuilder> repList = new SortedList <string, RepBuilder>();

            if (dirInfo.Exists)
            {
                FileInfo[] fileInfoArr = dirInfo.GetFiles("Rep*.dll", SearchOption.TopDirectoryOnly);
                foreach (FileInfo fileInfo in fileInfoArr)
                {
                    string fileName = fileInfo.Name;
                    string fullName = fileInfo.FullName;

                    // пропуск библиотеки базового абстрактного класса и библиотек отчётов, на которые недостаточно прав
                    if (fileName == "RepBuilder.dll" || !userData.GetRight(fileName).ViewRight)
                    {
                        continue;
                    }

                    // загрузка библиотеки (сборки)
                    Assembly asm = null; // библиотека
                    try
                    {
                        asm = Assembly.LoadFile(fullName);
                    }
                    catch (Exception ex)
                    {
                        AppData.Log.WriteAction(string.Format(Localization.UseRussian ?
                                                              "Ошибка при загрузке отчёта из библиотеки\n{0}\n{1}" :
                                                              "Error loading report from the assembly\n{0}\n{1}", fullName, ex.Message),
                                                Log.ActTypes.Error);
                        continue;
                    }

                    // получение типа из загруженной библиотеки
                    Type   repType   = null;
                    string typeName  = "Scada.Report." + fileName.Substring(0, fileName.Length - 4);
                    string unableMsg = string.Format(Localization.UseRussian ?
                                                     "Не удалось получить тип отчёта {0} из библиотеки\n{1}" :
                                                     "Unable to get the report type {0} from the assembly\n{1}", typeName, fullName);

                    try
                    {
                        repType = asm.GetType(typeName);
                        if (repType == null)
                        {
                            AppData.Log.WriteAction(unableMsg, Log.ActTypes.Error);
                            continue;
                        }
                    }
                    catch (Exception ex)
                    {
                        AppData.Log.WriteAction(unableMsg + "\n" + ex.Message, Log.ActTypes.Error);
                        continue;
                    }

                    try
                    {
                        // создание экземпляра класса отчёта
                        RepBuilder rep = Activator.CreateInstance(repType) as RepBuilder;

                        // добавление отчёта в список
                        repList.Add(rep.RepName, rep);
                    }
                    catch (Exception ex)
                    {
                        AppData.Log.WriteAction(string.Format(Localization.UseRussian ?
                                                              "Ошибка при создании экземпляра класса отчёта {0} из библиотеки\n{1}\n{2}" :
                                                              "Error creating report class instance {0} from the assembly\n{1}\n{2}",
                                                              repType, fullName, ex.Message), Log.ActTypes.Error);
                    }
                }
            }

            // вывод списка отчётов на форму
            if (repList.Count == 0)
            {
                lblReportList.Visible = false;
                lblNoReports.Visible  = true;
            }
            else
            {
                for (int i = 0; i < repList.Count; i++)
                {
                    RepBuilder rep = repList.Values[i];
                    AddReport(i + 1, rep.RepName, rep.WebFormFileName);
                }
            }
        }
Exemple #28
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

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

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

            // определение индексов выбранного представления
            int viewSetIndex, viewIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // получение представления и прав пользователя на него
            BaseView baseView;

            MainData.Right right;
            TableView      tableView = userData.GetView(null, viewSetIndex, viewIndex, out baseView, out right) ?
                                       baseView as TableView : null;

            // определение типа вывода событий
            int    eventOut;
            string eventOutStr = Request["eventOut"];

            if (eventOutStr == "all")
            {
                eventOut = 1; // все события
            }
            else if (eventOutStr == "view")
            {
                eventOut = 2; // по представлению
            }
            else
            {
                eventOut = 0; // не выводить
            }
            // проверка параметров генерации отчёта
            if (tableView == null && eventOut == 0)
            {
                throw new Exception(WebPhrases.NoReportData);
            }

            // проверка загрузки представления и прав на получение информации
            if (baseView == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.ViewRight || eventOut == 1 && userData.Role == ServerComm.Roles.Custom)
            {
                throw new Exception(CommonPhrases.NoRights);
            }

            // определение даты, за которую формируется отчёт
            int year, month, day;

            int.TryParse(Request["year"], out year);
            int.TryParse(Request["month"], out month);
            int.TryParse(Request["day"], out day);

            DateTime reqDate;

            try
            {
                reqDate = new DateTime(year, month, day);
            }
            catch
            {
                throw new Exception(WebPhrases.IncorrectDate);
            }

            // создание отчёта
            RepBuilder rep = new RepHrEvTable();

            try
            {
                // вывод в журнал
                AppData.Log.WriteAction(string.Format(WebPhrases.GenReport, rep.RepName, userData.UserLogin),
                                        Log.ActTypes.Action);

                // установка типа страницы и имени файла отчёта
                Response.ClearHeaders();
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename=\"" +
                                      Path.GetFileNameWithoutExtension(baseView.FileName) + reqDate.ToString(" yyyy-MM-dd") + ".xml\"");

                // установка параметров отчёта
                rep.SetParams(baseView, reqDate, eventOut);

                // генерация отчёта
                rep.Make(Response.OutputStream, Request.PhysicalApplicationPath + @"templates\");
            }
            catch (Exception ex)
            {
                string errMsg = string.Format(WebPhrases.GenReportError, rep.RepName, ex.Message);
                AppData.Log.WriteAction(errMsg, Log.ActTypes.Exception);

                Response.ClearHeaders();
                Response.ContentType = "text/html";
                Response.Write(ScadaUtils.HtmlEncodeWithBreak(errMsg));
            }
        }
Exemple #29
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

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

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

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

            // определение индексов выбранного представления
            int viewSetIndex, viewIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // получение табличного представления и прав пользователя на него
            BaseView baseView;

            MainData.Right right;
            TableView      tableView = userData.GetView(typeof(TableView), viewSetIndex, viewIndex,
                                                        out baseView, out right) ? (TableView)baseView : null;

            // проверка загрузки представления и прав на просмотр информации
            if (tableView == null)
            {
                throw new Exception(WebPhrases.UnableLoadView);
            }
            else if (!right.ViewRight)
            {
                throw new Exception(CommonPhrases.NoRights);
            }

            // определение параметров запроса
            int year, month, day, stage;

            int.TryParse(Request["year"], out year);
            int.TryParse(Request["month"], out month);
            int.TryParse(Request["day"], out day);
            int.TryParse(Request["stage"], out stage);

            DateTime reqDate;

            try
            {
                reqDate = new DateTime(year, month, day);
            }
            catch
            {
                throw new Exception(WebPhrases.IncorrectDate);
            }

            // формирование таблицы отображаемых элементов представления
            int itemCnt     = tableView.VisibleCount;
            int itemLastInd = itemCnt - 1;

            if (itemCnt > 0)
            {
                // формирование таблицы обозначений элементов представления
                TableRow row = new TableRow();
                row.CssClass = "hdr";
                NewCell(row, WebPhrases.ItemColumn);
                tblCap.Rows.Add(row);

                const string textHtmlTempl = "<table class=\"cap\" cellpadding=\"0\" cellspacing=\"0\"><tr>" +
                                             "<td>{0}</td><td>{1}</td><td>{2}</td></tr></table>";
                const string hintHtmlTempl = "<div class=\"hint\">{0}</div>";
                const string iconHtmlTempl = "<img src=\"images/paramIcons/{0}\" alt=\"\" />";
                const string capHtmlTempl  = "<span>{0}</span>";
                const string diagHtmlTempl = "<a href=\"javascript:ShowDiag({0}, {1}, {2}, {3}, {4}, {5})\">";
                const string cmdHtmlTempl  = "<a href=\"javascript:SendCmd({0}, {1}, {2})\">" +
                                             "<img src=\"images/cmd.gif\" alt=\"\" /></a>";
                bool canSendCmd = AppData.WebSettings.CmdEnabled && right.CtrlRight;

                for (int itemInd = 0; itemInd < itemCnt; itemInd++)
                {
                    TableView.Item item        = tableView.VisibleItems[itemInd];
                    int            cnlNum      = item.CnlNum;
                    int            cntrlCnlNum = item.CtrlCnlNum;
                    string         text;

                    if (cnlNum > 0 || cntrlCnlNum > 0)
                    {
                        CnlProps cnlProps = item.CnlProps;

                        List <string> hintLines = new List <string>();
                        if (cnlNum > 0)
                        {
                            hintLines.Add(WebPhrases.InCnlNumHint + cnlNum);
                        }
                        if (cntrlCnlNum > 0)
                        {
                            hintLines.Add(WebPhrases.OutCnlNumHint + cntrlCnlNum);
                        }
                        if (cnlProps != null)
                        {
                            hintLines.Add(WebPhrases.ObjectHint + cnlProps.ObjName);
                            hintLines.Add(WebPhrases.KPHint + cnlProps.KPName);
                            hintLines.Add(WebPhrases.ParamHint + cnlProps.ParamName);
                            if (cnlProps.ShowNumber && cnlProps.UnitArr != null && cnlProps.UnitArr.Length > 0)
                            {
                                hintLines.Add(WebPhrases.UnitHint + cnlProps.UnitArr[0]);
                            }
                        }

                        string hint         = string.Join("<br />", hintLines.ToArray());
                        string hintHtml     = string.Format(hintHtmlTempl, hint);
                        string iconFileName = cnlProps == null || cnlProps.IconFileName == "" ?
                                              "undef.gif" : cnlProps.IconFileName;
                        string iconHtml = string.Format(iconHtmlTempl, iconFileName);
                        string capHtml  = string.Format(capHtmlTempl, item.Caption);
                        string cmdHtml  = canSendCmd && cntrlCnlNum > 0 ?
                                          string.Format(cmdHtmlTempl, viewSetIndex, viewIndex, cntrlCnlNum) : "";

                        if (cnlNum > 0)
                        {
                            string diagHtml = string.Format(diagHtmlTempl,
                                                            viewSetIndex, viewIndex, year, month, day, cnlNum);
                            iconHtml = diagHtml + iconHtml + "</a>";
                            capHtml  = diagHtml + capHtml + "</a>";
                        }

                        text = string.Format(textHtmlTempl, iconHtml + hintHtml, capHtml, cmdHtml);
                    }
                    else
                    {
                        text = item.Caption == "" ? "<p>&nbsp;</p>" : "<p>" + item.Caption + "</p>";
                    }

                    row = new TableRow();
                    SetCssClass(row, itemInd % 3 == 2, itemInd == itemLastInd);
                    NewCell(row, text);
                    tblCap.Rows.Add(row);
                }

                // получение обновлённых данных часовых срезов
                SrezTableLight hourTable;
                AppData.MainData.RefreshData(reqDate, out hourTable);

                // формирование ячейки текущего среза
                row          = new TableRow();
                row.CssClass = "hdr";
                NewCell(row, WebPhrases.CurColumn);
                tblCur.Rows.Add(row);

                row = new TableRow();
                NewCell(row, "<iframe id=\"frameCurVal\" src=\"" +
                        "CurVals.aspx?viewSet=" + viewSetIndex + "&view=" + viewIndex + "&year=" + year +
                        "&month=" + month + "&day=" + day + "&hourStamp=" + hourTable.FileModTime.Ticks +
                        "\" frameborder=\"0\" scrolling=\"no\"></iframe>");
                tblCur.Rows.Add(row);

                // формирование заголовка таблицы часовых значений
                int firstHour = stage == 2 ? 12 : 0;
                int lastHour  = stage == 1 ? 11 : 23;
                row          = new TableRow();
                row.CssClass = "hdr";
                tblHour.Rows.Add(row);

                for (int hour = firstHour; hour <= lastHour; hour++)
                {
                    NewCell(row, hour.ToString());
                }

                // формирование содержимого таблицы часовых значений
                // для оптимизации доступа к данным порядок заполнения следующий: по часам, по элементам
                for (int hour = firstHour; hour <= lastHour; hour++)
                {
                    bool     isFirstHour = hour == firstHour;
                    DateTime dateTime    = new DateTime(year, month, day, hour, 0, 0);
                    int      rowInd      = 1;

                    for (int itemInd = 0; itemInd < itemCnt; itemInd++)
                    {
                        TableView.Item item = tableView.VisibleItems[itemInd];
                        string         text;
                        string         color;

                        if (item.CnlNum > 0)
                        {
                            text = AppData.MainData.GetCnlVal(hourTable, item.CnlNum, dateTime, false, out color);
                        }
                        else
                        {
                            text  = "";
                            color = "";
                        }

                        if (isFirstHour)
                        {
                            row = new TableRow();
                            SetCssClass(row, itemInd % 3 == 2, itemInd == itemLastInd);
                            tblHour.Rows.Add(row);
                            text = text == "" ? "<p>&nbsp;</p>" : "<p>" + text + "</p>";
                        }
                        else
                        {
                            row = tblHour.Rows[rowInd++];
                        }

                        TableCell cell = NewCell(row, text);

                        if (!(color == "" || color.ToLower() == "black"))
                        {
                            cell.ForeColor = Color.FromName(color);
                        }
                    }
                }
            }
            else
            {
                tblCap.Visible    = false;
                tblCur.Visible    = false;
                tblHour.Visible   = false;
                lblNoData.Visible = true;
            }
        }
Exemple #30
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // отключение кэширования страницы
            ScadaUtils.DisablePageCache(Response);

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

            // определение индексов выбранного представления
            int viewSetIndex, viewIndex;

            if (!int.TryParse(Request["viewSet"], out viewSetIndex))
            {
                viewSetIndex = -1;
            }
            if (!int.TryParse(Request["view"], out viewIndex))
            {
                viewIndex = -1;
            }

            // получение табличного представления и прав пользователя на него
            BaseView baseView;

            MainData.Right right;
            TableView      tableView = userData.GetView(typeof(TableView), viewSetIndex, viewIndex,
                                                        out baseView, out right) ? (TableView)baseView : null;

            // проверка входа в систему и прав на просмотр информации
            if (userData.LoggedOn && tableView != null && right.ViewRight)
            {
                // определение параметров запроса
                int year, month, day;
                int.TryParse(Request["year"], out year);
                int.TryParse(Request["month"], out month);
                int.TryParse(Request["day"], out day);
                string hourStamp = Request["hourStamp"];

                DateTime reqDate;
                try
                {
                    reqDate = new DateTime(year, month, day);
                }
                catch
                {
                    throw new Exception(WebPhrases.IncorrectDate);
                }

                // обновление данных
                SrezTableLight hourTable;
                AppData.MainData.RefreshData(reqDate, out hourTable);

                // формирование таблицы текущих значений элементов представления
                int itemCnt     = tableView.VisibleCount;
                int itemLastInd = itemCnt - 1;

                for (int itemInd = 0; itemInd < itemCnt; itemInd++)
                {
                    TableView.Item item = tableView.VisibleItems[itemInd];
                    string         text;
                    string         color;

                    if (item.CnlNum > 0)
                    {
                        text = AppData.MainData.GetCnlVal(item.CnlNum, false, out color);
                    }
                    else
                    {
                        text  = "";
                        color = "";
                    }

                    TableRow  row  = new TableRow();
                    TableCell cell = WFrmTableView.NewCell(row, text == "" ? "<p>&nbsp;</p>" : "<p>" + text + "</p>");
                    WFrmTableView.SetCssClass(row, itemInd % 3 == 2, itemInd == itemLastInd);
                    tblCurVals.Rows.Add(row);

                    if (!(color == "" || color.ToLower() == "black"))
                    {
                        cell.ForeColor = Color.FromName(color);
                    }
                }


                if (string.IsNullOrEmpty(hourStamp) || hourStamp == hourTable.FileModTime.Ticks.ToString())
                {
                    // добавление скрипта обновления текущих значений по таймауту
                    AddRefreshCurValsScript(AppData.WebSettings.SrezRefrFreq * 1000);
                }
                else
                {
                    // добавление скрипта обновления часовых значений при загрузке
                    AddRefreshHourValsScript();
                }
            }
            else
            {
                // добавление скрипта обновления часовых значений при загрузке
                // для перехода на страницу входа в систему
                AddRefreshHourValsScript();
            }
        }