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; } }
protected void Session_Start(object sender, EventArgs e) { // добавление информации о пользователе AppData.GetAppData().UserMonitor.AddUser(UserData.GetUserData()); // setup the translator Translator.AppendProductName = true; }
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); } }
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; }
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); } }
protected void Page_Load(object sender, EventArgs e) { appData = AppData.GetAppData(); userData = UserData.GetUserData(); // проверка входа в систему userData.CheckLoggedOn(true); }
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); }
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; }
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; } }
/// <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; } }
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); } }
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(); } }
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)); } }
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 } }
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(); } }
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; } }
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)); } }
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); }
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; } }
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; } }
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(); } }
protected void Session_Start(object sender, EventArgs e) { // добавление информации о пользователе AppData.GetAppData().UserMonitor.AddUser(UserData.GetUserData()); }
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; } }
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; } } } }
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); } } }
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); } } }
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)); } }
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> </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> </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; } }
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> </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(); } }