/// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            string[] id_list = this.HiddenDelete.Value.Split(',');

            if (id_list.Length == 0)
            {
                return;
            }

            List <IDataParameter> para = null;

            string strSql = string.Empty;

            string message = string.Empty;

            try
            {
                int pass_count = 0;

                for (int i = 0; i < id_list.Length; i++)
                {
                    strSql = this.Update.UserRoleStatus(id_list[i], "99", ref para);

                    this.WriteLog(message = string.Format("停用角色所屬人員:{0} ({1})-{2}", this.lblInfo.InnerText, this.UID, id_list[i]));

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    int result = this.DBConn.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    if (result > 0)
                    {
                        pass_count++;
                    }

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, result > 0 ? CaptionMode.Get(CaptionLib.Mode.Delete) : CaptionMode.Get(CaptionLib.Mode.DeleteFail), this.PageName, message, false);
                }
                if (id_list.Length > 0)
                {
                    this.MessageBox(pass_count == id_list.Length ? string.Format("停用成功") : string.Format("停用成功:{0}筆\r\n停用失敗:{1}筆", pass_count, id_list.Length - pass_count));
                }

                this.DataBind(true, false);
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                this.MyMonitor.CloseConn();

                this.CloseConn();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="Anew"></param>
        /// <param name="LockPageNum"></param>
        public void DataBind(bool Anew, bool LockPageNum)
        {
            if (!this.QueryPermissions)
            {
                return;
            }

            if (String.IsNullOrEmpty(this.txtStartDate.Text) || String.IsNullOrEmpty(this.txtEndDate.Text))
            {
                this.txtStartDate.Text = DateTime.Now.AddDays(-14).ToString("yyyy/MM/dd");

                this.txtEndDate.Text = DateTime.Now.ToString("yyyy/MM/dd");
            }
            string where = this.QueryConditions(new List <string[]>
            {
                new string[] { this.lblStartDate.InnerText, this.txtStartDate.Text.Trim() },
                new string[] { this.lblEndDate.InnerText, this.txtEndDate.Text.Trim() },
                new string[] { this.lblWebName.InnerText, this.ddlWebName.SelectedValue },
                new string[] { this.lblCaption.InnerText, this.ddlCaption.SelectedValue },
                new string[] { this.lblActionMode.InnerText, this.ddlActionMode.SelectedValue, },
                new string[] { this.lblUserAccount.InnerText, this.txtUserAccount.Text.Trim() },
                new string[] { this.lblUserIP.InnerText, this.txtUserIP.Text.Trim() }
            });

            string caption = CaptionMode.Get(CaptionLib.Mode.Query);

            try
            {
                this.WriteLog(string.Format("準備查詢"));

                List <LinkButton> pageLinkButton = new List <LinkButton>();
                pageLinkButton.Add(this.btnFirst_GridView1);
                pageLinkButton.Add(this.btnPrev_GridView1);
                pageLinkButton.Add(this.btnNext_GridView1);
                pageLinkButton.Add(this.btnLast_GridView1);

                if (Anew)
                {
                    string strSql = string.Empty;

                    DataTable dt = null;

                    List <IDataParameter> para = null;

                    strSql = this.Select.Logs(
                        DateTime.Parse(this.txtStartDate.Text).ToString("yyyy/MM/dd 00:00:00"),
                        DateTime.Parse(this.txtEndDate.Text).ToString("yyyy/MM/dd 23:59:59"),
                        this.ddlWebName.SelectedValue,
                        this.ddlCaption.SelectedValue,
                        this.ddlActionMode.SelectedValue,
                        this.txtUserAccount.Text.Trim(),
                        this.txtUserIP.Text.Trim(),
                        ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    this.DBConn.GeneralSqlCmd.Command.CommandTimeout = 90;

                    dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                    para = null;

                    bool check = this.divPageLayer_GridView1.Visible = dt.Rows.Count > 0;

                    if (!check)
                    {
                        this.GridView1.DataBind(); return;
                    }
                    else
                    {
                        ViewState[this.GridView1.ClientID] = dt;

                        dt.Dispose(); dt = null;
                    }
                }
                this.GridView1.DataBind((DataTable)ViewState[this.GridView1.ClientID], Anew, LockPageNum, this.lblTotalPage_GridView1, this.lblPage_GridView1, pageLinkButton);
            }
            catch (System.Exception ex) { this.WriteLog(Log.Mode.LogMode.ERROR, ex.ToString()); this.MessageBox("發生錯誤", string.Format("系統發生錯誤\r\n{0}", ex.Message)); caption = CaptionMode.Get(CaptionLib.Mode.QueryFail); }
            finally
            {
                this.CloseConn();

                this.WriteLog(string.Format("查詢結束"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, caption, this.PageName, string.Format("{0}\r\n查詢結果共{1}筆\r\n當前為第{2}頁", where, ViewState[this.GridView1.ClientID] != null ? ((DataTable)ViewState[this.GridView1.ClientID]).Rows.Count : 0, (this.GridView1.PageIndex + 1).ToString()));
            }
        }
        /// <summary>
        ///
        /// </summary>
        private void LoadData()
        {
            this.btnSave.Visible = this.btnOK.Visible = false;

            bool verifty = true;

            List <IDataParameter> para = null;

            DataTable dt = null;

            string strSql = string.Empty;

            try
            {
                string uid = this.RequestQueryString("uid").DecryptDES();

                strSql = this.Select.PushMessage(uid, null, null, null, null, null, null, this.SessionMgr.UserInfos.UserID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt.Rows.Count == 0)
                {
                    throw new Exception(string.Format("資料取得失敗"));
                }

                this.ViewState["IDF"] = dt.Rows[0]["msg_identifier"].ToString().Trim();

                string msg_apply_maker = dt.Rows[0]["msg_apply_maker"].ToString().Trim();

                verifty = !msg_apply_maker.Equals(this.SessionMgr.UserInfos.UserID);

                int status = Convert.ToInt16(dt.Rows[0]["msg_status"].ToString().Trim());

                this.btnSave.Visible = this.btnOK.Visible = status.Equals(1) || status.Equals(2) || status.Equals(4);

                string color = string.Empty;

                switch (status)
                {
                case 1: color = "Chocolate"; break;

                case 2: color = "Green"; break;

                case 3: color = "Blue"; break;

                case 4: color = "Red"; break;

                case 5: color = "Gray"; break;
                }
                this.lblStatus.InnerHtml = string.Format("<font color=\"{1}\">{0}</font>", status.ToString().GetPushMessageCH().HtmlEncode(), color);

                this.txtID.Text            = dt.Rows[0]["msg_identifier"].ToString().Trim();
                this.txtPushTitle.Text     = dt.Rows[0]["msg_push_title"].ToString().Trim().HtmlEncode();
                this.txtPushBody.Text      = dt.Rows[0]["msg_push_content"].ToString().Trim().HtmlEncode();
                this.txtPushHyperlink.Text = dt.Rows[0]["msg_push_hyperlink"].ToString().Trim();

                this.ViewState["PushImageName"] = this.HiddenPushImageName.Value = dt.Rows[0]["msg_push_image"].ToString().Trim().EncryptBase64();

                this.ddlOS.SelectedValue = dt.Rows[0]["msg_push_os_type"].ToString().Trim();

                this.HiddenAppName.Value = dt.Rows[0]["msg_push_app_identifier"].ToString().Trim();

                string msg_push_recp_list = dt.Rows[0]["msg_push_recp_list"].ToString().Trim();

                string[] msg_push_recp_list_date = msg_push_recp_list.Split('|');

                this.HiddenPushListName.Value = msg_push_recp_list_date.Length > 0 && !String.IsNullOrEmpty(msg_push_recp_list_date[0]) ? msg_push_recp_list_date[0].DecryptBase64() : string.Empty;

                this.HiddenPushListBody.Value = msg_push_recp_list_date.Length > 1 && !String.IsNullOrEmpty(msg_push_recp_list_date[1]) ? msg_push_recp_list_date[1] : string.Empty;

                this.chBoxCustList.Checked = !String.IsNullOrEmpty(this.HiddenPushListName.Value);

                bool msg_is_send_now = dt.Rows[0]["msg_is_send_now"].ToString().Trim().Equals("1");

                this.sendMode1.Checked = msg_is_send_now;

                this.sendMode2.Checked = !this.sendMode1.Checked;

                DateTime send_date = DateTime.MinValue;

                if (!msg_is_send_now)
                {
                    send_date = DateTime.Parse(dt.Rows[0]["msg_reserv_send_time"].ToString().Trim());
                }

                if (!send_date.Equals(DateTime.MinValue))
                {
                    this.txtSendDate.Text = send_date.ToString("yyyy/MM/dd");

                    this.ddlHour.SelectedValue = send_date.Hour.ToString();

                    this.ddlMinute.SelectedValue = send_date.Minute.ToString();
                }
                this.btnSave.Visible = !status.Equals(4);
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.VeriftyTokenFromPreviousPage(WebTypeMode.btnUpdate, verifty);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("修改分組"));

                strSql = this.Update.Types(this.UID, this.txtlblIdentifier.Text.Trim(), this.txtTypeName.Text.Trim(), ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConn.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (result.Equals(0))
                {
                    this.MessageBox(Mode.LogMode.ERROR, string.Format("修改角色失敗"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, string.Format("分組識別碼:{0}", this.txtlblIdentifier.Text.Trim()));

                    return;
                }


                this.MessageBox(Mode.LogMode.INFO, string.Format("修改成功"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Update), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("修改角色權限結束"));
            }
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                string uid = this.UID;

                if (String.IsNullOrEmpty(uid))
                {
                    return;
                }
                this.WriteLog(string.Format("修改單位"));

                strSql = this.Select.CheckDepts(uid, this.txtGroupCode.Text.Trim(), ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                if (this.DBConnTransac.GeneralSqlCmd.ExecuteScalar(strSql, para))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("單位代碼重覆了 ({0})", this.txtGroupCode.Text.Trim()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                    return;
                }
                this.WriteLog(string.Format("準備修改單位編號:{0}", uid));

                strSql = this.Update.Group(uid, this.txtGroupCode.Text.Trim(), this.txtGroupName.Text.Trim(), this.ViewState["group_status"].ToString(), this.SessionMgr.UserInfos.UserID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.INFO, string.Format("修改失敗"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, string.Format("單位編號:{0}", uid.ToString()));

                    return;
                }
                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, string.Format("修改成功"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Update), this.PageName, string.Format("單位編號:{0}", uid.ToString()));
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("修改單位結束"));
            }
        }
예제 #6
0
        /// <summary>
        ///
        /// </summary>
        private void LoadGroup()
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty;

            StringBuilder sb = new StringBuilder();

            DataTable dt = null, dt_RoleGroup = null;

            try
            {
                strSql = this.Select.RoleGroup(this.UID, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt_RoleGroup = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                strSql = this.Select.Group(null, null, null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                int max_count = 3;

                sb.Append(string.Format("<table id=\"tb_Depts\" class=\"table table-striped table-bordered table-hover dataTable no-footer\" cellspacing=\"0\" rules=\"all\" Count=\"1\" border=\"1\" id=\"GridView1\" style=\"border-collapse:collapse;\">"));

                sb.Append(string.Format("<tr>"));
                sb.Append(string.Format("   <th colspan=\"{0}\" style=\"text-align: left!important;\">{1}</th>", max_count.ToString(), "<input type=\"checkbox\" onclick=\"return deptSelectAll(this);\">&nbsp;<span>全選</span>"));
                sb.Append(string.Format("</tr>"));

                for (int i = 0; i < dt.Rows.Count; i += max_count)
                {
                    sb.Append(string.Format("<tr>"));

                    for (int i2 = 0; i2 < max_count; i2++)
                    {
                        int index = i + i2;

                        if (index < dt.Rows.Count)
                        {
                            DataRow[] dr = dt_RoleGroup.Select(string.Format("role_group_group_id = '{0}'", dt.Rows[index]["group_id"].ToString().Trim()));

                            bool check_group = dr.Length > 0;

                            sb.Append(string.Format("<td><input type=\"checkbox\" key=\"role-dept-item\" value=\"{0}\"{2}>&nbsp;<span>{1}</span></td>",
                                                    dt.Rows[index]["group_id"].ToString().Trim().HtmlEncode(),
                                                    dt.Rows[index]["group_name"].ToString().Trim().HtmlEncode(),
                                                    check_group ? " checked" : string.Empty
                                                    ));
                        }
                        else
                        {
                            sb.Append(string.Format("<td></td>"));
                        }
                    }
                    sb.Append(string.Format("</tr>"));
                }
                sb.AppendLine(string.Format("</table>"));
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();
            }
            this.LiteralDepts.Text = sb.ToString();
        }
예제 #7
0
        /// <summary>
        ///
        /// </summary>
        private void LoadRoleWeb()
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty;

            StringBuilder sb = new StringBuilder();

            DataTable dt = null, dt_RolePermission = null;

            DataRow[] dr_web_type = null;
            try
            {
                strSql = this.Select.RolesWebPermission(this.UID, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt_RolePermission = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                strSql = this.Select.RolesWebList();

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                sb.Append(string.Format("<table id=\"tb_RolesWeb\" class=\"table table-striped table-bordered table-hover dataTable no-footer\" cellspacing=\"0\" rules=\"all\" Count=\"1\" border=\"1\" id=\"GridView1\" style=\"border-collapse:collapse;\">"));

                DataRow[] drs = dt.Select(string.Format("web_perm_is_visible = '1'"));

                List <string> group_name_list = new List <string>();

                if (drs.Length > 0)
                {
                    DataRow dr = drs[0];

                    var dr_sort = drs.OrderByDescending(d => dr["web_perm_seq"]);

                    foreach (var dr1 in dr_sort)
                    {
                        string page_group_name = dr1["web_perm_group_name"].ToString().HtmlEncode();

                        int web_type = Convert.ToInt32(dr1["web_perm_pri"].ToString().Trim().HtmlEncode());

                        dr_web_type = dt_RolePermission.Select(string.Format("role_perm_perm_id = '{0}'", dr1["web_perm_id"].ToString().Trim().HtmlEncode()));

                        int check_web_type = dr_web_type.Length > 0 ? Convert.ToInt32(dr_web_type[0]["role_perm_value"].ToString().HtmlEncode()) : 0;

                        if (String.IsNullOrEmpty(page_group_name))
                        {
                            sb.Append(string.Format("<tr>"));
                            sb.Append(string.Format("   <th></th>"));
                            sb.Append(string.Format("   <td>{0}</td>", dr1["web_perm_page_name"].ToString().HtmlEncode()));
                            sb.Append(string.Format("   <td>{0}</td>", this.GenerateRoleWebCheckBox(dr1["web_perm_id"].ToString().HtmlEncode(), Convert.ToInt32(dr1["web_perm_pri"].ToString().HtmlEncode()), check_web_type, dr1["web_perm_is_manage"].ToString().HtmlEncode() == "1")));
                            sb.Append(string.Format("</tr>"));

                            continue;
                        }
                        if (!String.IsNullOrEmpty(group_name_list.Find(x => x == page_group_name)))
                        {
                            continue;
                        }

                        string id = Guid.NewGuid().ToString();

                        DataRow[] dr_item = dt.Select(string.Format("web_perm_is_visible = '1' And web_perm_group_name = '{0}'", page_group_name));

                        var dr_item_sort = dr_item.OrderByDescending(d => dr1["web_perm_seq"]);

                        int count = 0;

                        foreach (var dr2 in dr_item_sort)
                        {
                            dr_web_type = dt_RolePermission.Select(string.Format("role_perm_perm_id = '{0}'", dr2["web_perm_id"].ToString().Trim().HtmlEncode()));

                            check_web_type = dr_web_type.Length > 0 ? Convert.ToInt32(dr_web_type[0]["role_perm_value"].ToString().HtmlEncode()) : 0;

                            sb.Append(string.Format("<tr>"));
                            if (count == 0)
                            {
                                sb.Append(string.Format("   <th rowspan=\"{0}\">{1}</th>", dr_item_sort.Count(), page_group_name.HtmlEncode()));
                            }
                            sb.Append(string.Format("   <td>{0}</td>", dr2["web_perm_page_name"].ToString().HtmlEncode()));
                            sb.Append(string.Format("   <td>{0}</td>", this.GenerateRoleWebCheckBox(dr2["web_perm_id"].ToString().HtmlEncode(), Convert.ToInt32(dr2["web_perm_pri"].ToString().HtmlEncode()), check_web_type, dr2["web_perm_is_manage"].ToString().HtmlEncode() == "1")));
                            sb.Append(string.Format("</tr>"));
                            count++;
                        }
                        group_name_list.Add(page_group_name);
                    }
                }
                sb.AppendLine(string.Format("</table>"));
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                dt = dt_RolePermission = null;

                para = null;

                this.CloseConn();
            }
            string html = sb.ToString().HtmlEncode();

            this.LiteralRoleWeb.Text = html.HtmlDecode();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            Hashtable ht = new Hashtable();

            try
            {
                this.WriteLog(string.Format("新增系統存取管理名單"));

                strSql = this.Select.CheckPushWhitelist(null, this.txtAccount.Text.Trim(), ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                bool check = this.DBConnTransac.GeneralSqlCmd.ExecuteScalar(strSql, para);

                if (check)
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("帳號重覆了 ({0})", this.txtAccount.Text.Trim().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                ht.Add("agent_account", this.txtAccount.Text.Trim());
                ht.Add("agent_pwd", this.txtPassword1.Text.Trim().SHA256());
                ht.Add("agent_secret", this.lblShareSecret.Text.Trim());
                ht.Add("agent_name", this.txtAgentName.Text.Trim());
                ht.Add("agent_status", this.ddlStatus.SelectedValue);
                ht.Add("agent_desc", this.txtComment.Text.Trim());
                ht.Add("agent_address", this.txtIPAddres.Text.Trim());
                ht.Add("agent_creator", this.SessionMgr.UserInfos.UserID);

                strSql = this.Insert.PushWhitelist(ht, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                object agent_id_temp = this.DBConnTransac.GeneralSqlCmd.ExecuteItentity(strSql, para);

                if (agent_id_temp == null)
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("新增失敗 ({0})", this.txtAgentName.Text.Trim().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                string[] app_id_list = this.HiddenAppList.Value.Split('|');

                for (int i = 0; i < app_id_list.Length; i++)
                {
                    strSql = this.Insert.AgentApp(agent_id_temp.ToString(), app_id_list[i], ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    if (result.Equals(0))
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, message = string.Format("新增APP失敗 ({0})", this.txtAgentName.Text.Trim().HtmlEncode()));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                        return;
                    }
                }

                string[] type_id_list = this.HiddenTypeList.Value.Split('|');

                for (int i = 0; i < type_id_list.Length; i++)
                {
                    strSql = this.Insert.AgentType(agent_id_temp.ToString(), type_id_list[i], ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    if (result.Equals(0))
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, message = string.Format("新增分組失敗 ({0})", this.txtAgentName.Text.Trim().HtmlEncode()));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                        return;
                    }
                }
                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, message = string.Format("新增成功"));

                message += string.Format(",APP數量{0}個", app_id_list.Length.ToString());
                message += string.Format(",分組數量{0}個", type_id_list.Length.ToString());

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("新增系統存取管理名單結束"));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOverrule_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("駁回開始"));

                string role_id = this.ViewState["RoleID"].ToString();

                string group_id = this.ViewState["GroupID"].ToString();

                string user_id = this.ViewState["UserID"].ToString();

                int verify_status = (int)this.ViewState["VerifyStatus"];

                message = string.Format("審核編號:{0},單位編號:{1},角色編號:{2},被覆核人員:{3}", this.UID, group_id, role_id, user_id);

                if (String.IsNullOrEmpty(role_id) || String.IsNullOrEmpty(group_id) || String.IsNullOrEmpty(this.UID))
                {
                    this.MessageBox(Mode.LogMode.ERROR, string.Format("發生資訊參數取得錯誤"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.OverruleFail), this.PageName, message);

                    return;
                }
                VerifyInfo verifyInfo = JsonConvert.DeserializeObject <VerifyInfo>(this.ViewState["Detail"].ToString());

                verifyInfo.ApprovedID = this.SessionMgr.UserInfos.UserID;

                verifyInfo.ApprovedName = this.SessionMgr.UserInfos.RealName;

                string detail = JsonConvert.SerializeObject(verifyInfo);

                strSql = this.Update.UserRolesVerifyStatus(this.UID, "9", detail.EncryptBase64(), ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConn.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.MessageBox(Mode.LogMode.ERROR, "駁回失敗");

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.OverruleFail), this.PageName, message);

                    return;
                }
                this.MessageBox(Mode.LogMode.INFO, "駁回成功");

                this.LoadUserInfo();

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Overrule), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("駁回結束"));
            }
        }
예제 #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Anew"></param>
        /// <param name="LockPageNum"></param>
        public void DataBind(bool Anew, bool LockPageNum)
        {
            if (!this.QueryPermissions)
            {
                return;
            }

            string where = this.QueryConditions(new List <string[]>
            {
                new string[] { this.lblDept.InnerText, !String.IsNullOrEmpty(this.ddlDept.SelectedItem.Value) ? string.Format("{0} ({1})", this.ddlDept.SelectedItem.Value, this.ddlDept.SelectedItem.Text) : string.Empty }
            });
            string caption = CaptionMode.Get(CaptionLib.Mode.Query);

            try
            {
                string group_id = this.ddlDept.SelectedValue;

                if (!this.SessionMgr.UserInfos.IsSuperUser && String.IsNullOrEmpty(group_id))
                {
                    return;
                }

                this.WriteLog(string.Format("準備查詢"));

                List <LinkButton> pageLinkButton = new List <LinkButton>();
                pageLinkButton.Add(this.btnFirst_GridView1);
                pageLinkButton.Add(this.btnPrev_GridView1);
                pageLinkButton.Add(this.btnNext_GridView1);
                pageLinkButton.Add(this.btnLast_GridView1);

                if (Anew)
                {
                    string strSql = string.Empty;

                    DataTable dt = null;

                    List <IDataParameter> para = null;

                    strSql = this.Select.Verify(null, group_id, "1", null, this.txtUserAccount.Text.Trim(), this.ddlVerifyStatus.SelectedValue, false, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    this.DBConn.GeneralSqlCmd.Command.CommandTimeout = 90;

                    dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                    para = null;

                    bool check = this.divPageLayer_GridView1.Visible = dt.Rows.Count > 0;

                    if (!check)
                    {
                        this.GridView1.DataBind(); return;
                    }
                    else
                    {
                        ViewState[this.GridView1.ClientID] = dt;

                        dt.Dispose(); dt = null;
                    }
                }
                this.GridView1.DataBind((DataTable)ViewState[this.GridView1.ClientID], Anew, LockPageNum, this.lblTotalPage_GridView1, this.lblPage_GridView1, pageLinkButton);
            }
            catch (System.Exception ex) { this.WriteLog(Log.Mode.LogMode.ERROR, ex.ToString()); this.MessageBox("發生錯誤", string.Format("系統發生錯誤\r\n{0}", ex.Message)); caption = CaptionMode.Get(CaptionLib.Mode.QueryFail); }
            finally
            {
                this.CloseConn();

                this.WriteLog(string.Format("查詢結束"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, caption, this.PageName, string.Format("{0}\r\n查詢結果共{1}筆\r\n當前為第{2}頁", where, ViewState[this.GridView1.ClientID] != null ? ((DataTable)ViewState[this.GridView1.ClientID]).Rows.Count : 0, (this.GridView1.PageIndex + 1).ToString()));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                strSql = this.Insert.Type(this.txtlblIdentifier.Text.Trim(), this.txtTypeName.Text.Trim(), ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                object type_id = this.DBConn.GeneralSqlCmd.ExecuteItentity(strSql, para);

                if (type_id == null)
                {
                    this.MessageBox(Mode.LogMode.ERROR, string.Format("新增分組失敗"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, string.Format("分組識別碼名稱:{0}", this.txtlblIdentifier.Text.Trim()));

                    return;
                }

                this.MessageBox(Mode.LogMode.INFO, string.Format("新增成功"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Add), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("新增分組結束"));
            }
        }
        /// <summary>
        ///
        /// </summary>
        private void LoadData()
        {
            List <IDataParameter> para = null;

            DataTable dt = null;

            string strSql = string.Empty;

            try
            {
                strSql = this.Select.PushWhitelist(this.UID, null, null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt.Rows.Count == 0)
                {
                    throw new Exception(string.Format("資料取得失敗"));
                }

                this.lblInfo.InnerText = string.Format("{0}", dt.Rows[0]["agent_name"].ToString().Trim());

                this.txtAgentName.Text = dt.Rows[0]["agent_name"].ToString().Trim();

                this.HiddenAgentName.Value = this.txtAgentName.Text.EncryptDES();

                this.txtAccount.Text = dt.Rows[0]["agent_account"].ToString().Trim();

                this.HiddenAccount.Value = this.txtAccount.Text.EncryptDES();

                this.ddlStatus.SelectedValue = dt.Rows[0]["agent_status"].ToString().Trim();

                this.txtIPAddres.Text = dt.Rows[0]["agent_address"].ToString().Trim();

                this.txtComment.Text = dt.Rows[0]["agent_desc"].ToString().Trim();

                this.lblShareSecret.Text = dt.Rows[0]["agent_secret"].ToString().Trim();

                this.ViewState["PWD"] = dt.Rows[0]["agent_pwd"].ToString().Trim();

                strSql = this.Select.AgentAppList(this.UID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                StringBuilder sb = new StringBuilder();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    StringBuilder sb_os_type = new StringBuilder();

                    string os_type = dt.Rows[i]["app_os_type"].ToString().Trim();

                    foreach (OsTypeMode os in Enum.GetValues(typeof(OsTypeMode)))
                    {
                        bool check = (Convert.ToInt32(os_type) & (int)os) > 0;

                        if (!check)
                        {
                            continue;
                        }

                        sb_os_type.Append(string.Format("{0}[br/]", ((int)os).ToString().GetOsTypeCH()));
                    }
                    if (i > 0)
                    {
                        sb.Append(", ");
                    }

                    sb.Append(string.Format("< \"app_id\" : \"{0}\", \"app_identifier\" : \"{1}\", \"app_name\" : \"{2}\", \"app_os_type\" : \"{3}\" >"
                                            , dt.Rows[i]["app_id"].ToString().HtmlEncode().EncryptBase64()
                                            , dt.Rows[i]["app_identifier"].ToString().HtmlEncode().EncryptBase64()
                                            , dt.Rows[i]["app_name"].ToString().HtmlEncode().EncryptBase64()
                                            , sb_os_type.ToString().HtmlEncode().EncryptBase64()
                                            ));
                }
                string json = "{ \"data\": [" + sb.ToString().Replace("<", "{").Replace(">", "}") + "] }";

                ScriptManager.RegisterStartupScript(this, this.GetType(), "appData", string.Format("var appData = {0};\r\n", json), true);

                strSql = this.Select.AgentTypeList(this.UID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                StringBuilder sb2 = new StringBuilder();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (i > 0)
                    {
                        sb2.Append(", ");
                    }

                    sb2.Append(string.Format("< \"type_id\" : \"{0}\", \"type_identifier\" : \"{1}\", \"type_name\" : \"{2}\" >"
                                             , dt.Rows[i]["type_id"].ToString().HtmlEncode().EncryptBase64()
                                             , dt.Rows[i]["type_identifier"].ToString().HtmlEncode().EncryptBase64()
                                             , dt.Rows[i]["type_name"].ToString().HtmlEncode().EncryptBase64()
                                             ));
                }
                string json2 = "{ \"data\": [" + sb2.ToString().Replace("<", "{").Replace(">", "}") + "] }";

                ScriptManager.RegisterStartupScript(this, this.GetType(), "typeData", string.Format("var typeData = {0};\r\n", json2), true);
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnExport_Click(object sender, EventArgs e)
        {
            this.WriteLog(string.Format("開始匯出"));

            if (String.IsNullOrEmpty(this.txtStartDate.Text) || String.IsNullOrEmpty(this.txtEndDate.Text))
            {
                this.txtStartDate.Text = DateTime.Now.AddDays(-14).ToString("yyyy/MM/dd");

                this.txtEndDate.Text = DateTime.Now.ToString("yyyy/MM/dd");
            }
            string start_date_time = string.Format("{0} 00:00:00", this.txtStartDate.Text.HtmlEncode());

            string end_date_time = string.Format("{0} 23:59:59", this.txtEndDate.Text.HtmlEncode());

            string where = this.QueryConditions(new List <string[]>
            {
                new string[] { this.lblStartDate.InnerText, start_date_time },
                new string[] { this.lblEndDate.InnerText, end_date_time },
                new string[] { this.lblOs.InnerText, !String.IsNullOrEmpty(this.ddlOS.SelectedValue) ? this.ddlOS.SelectedValue.GetOsTypeCH() : string.Empty },
                new string[] { this.lblApp.InnerText, !String.IsNullOrEmpty(this.ddlApp.SelectedValue) ? this.ddlApp.SelectedValue : string.Empty }
            });

            string caption = CaptionMode.Get(CaptionLib.Mode.Export);

            DataTable dt = null;

            List <IDataParameter> para = null;

            try
            {
                string strSql = this.Select.Report002(start_date_time, end_date_time, !String.IsNullOrEmpty(this.ddlOS.SelectedValue) ? Convert.ToInt16(this.ddlOS.SelectedValue) : -1, this.HiddenAppName.Value, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt.Rows.Count.Equals(0))
                {
                    this.MessageBox(string.Format("所選條件沒有任何資料")); return;
                }
                string[] columnNames = new string[] { "APP ID", "APP 項目", "APP 版本", "作業系統", "數量" };

                if (this.ddlExportMode.SelectedValue.Equals("0"))
                {
                    this.Export2CSV(this, dt, string.Format("{0}.csv", DateTime.Now.ToString("yyyyMMddHHmmss")), columnNames);
                }
                else if (this.ddlExportMode.SelectedValue.Equals("1"))
                {
                    this.Export2TXT(this, dt, string.Format("{0}.txt", DateTime.Now.ToString("yyyyMMddHHmmss")), columnNames);
                }
            }
            catch (System.Exception ex) { this.MessageBox(ex); }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("匯出結束"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Export, this.SessionMgr.UserInfos.UserID, caption, this.PageName, string.Format("{0}\r\n匯出結果共{1}筆", where, dt != null ? dt.Rows.Count : 0));
            }
        }
예제 #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("新增APP"));

                strSql = this.Select.App(null, this.txtAppID.Text.Trim(), null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                if (this.DBConn.GeneralSqlCmd.ExecuteScalar(strSql, para))
                {
                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("APP ID重覆了 ({0})", this.txtAppID.Text.Trim().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                int os_type = this.radioBtnOsType1.Checked ? Convert.ToInt16(this.radioBtnOsType1.Value) : Convert.ToInt16(this.radioBtnOsType2.Value);

                strSql = this.Insert.App(
                    this.txtAppID.Text.Trim(),
                    this.txtAppName.Text.Trim(),
                    os_type,
                    this.radioBtnOsType1.Checked ? this.txtAppKey.Text : string.Empty,
                    this.radioBtnOsType1.Checked ? string.Empty : this.HiddenAppCertBody.Value,
                    this.radioBtnOsType1.Checked ? string.Empty : this.txtAppCertKey.Text,
                    this.radioBtnOsType1.Checked ? string.Empty : this.HiddenAppCertDateTime.Value.DecryptBase64(),
                    this.radioBtnOsType1.Checked ? 0 : this.radioBtnCertType1.Checked ? Convert.ToInt16(this.radioBtnCertType1.Value) : Convert.ToInt16(this.radioBtnCertType2.Value),
                    ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConn.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("新增失敗 ({0})", this.txtAppID.Text.Trim().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                this.MessageBox(Mode.LogMode.INFO, string.Format("新增成功"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("新增APP結束"));
            }
        }
예제 #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            DataTable dt = null;

            try
            {
                string body_fromat = "{"
                                     + " \"data_content\":\"[data_content]\""
                                     + " ,\"is_private\": \"[is_private]\""
                                     + " ,\"data_link\": \"[data_link]\""
                                     + " ,\"data_image\": \"[data_image]\""
                                     + " ,\"msg_id\": \"[msg_id]\""
                                     + " }";

                this.WriteLog(string.Format("開始核准推播訊息"));

                strSql = this.Update.PushMessageStatus(this.UID, "3", ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (result.Equals(0))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("核准推播訊息失敗,推播申請單號:{0}", this.lblID.Text.HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                    return;
                }
                strSql = this.Select.PushMessageApproved(this.UID, null, null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                string msg_push_image = dt.Rows[0]["msg_push_image"].ToString().Trim();

                if (!String.IsNullOrEmpty(msg_push_image))
                {
                    string publicURIPrefix = this.GetSystemSetting("PublicURIPrefix");

                    if (!publicURIPrefix.EndsWith("/") && !publicURIPrefix.EndsWith(@"\"))
                    {
                        publicURIPrefix += "/";
                    }

                    string connect_test_url = publicURIPrefix + "ConnectTest";

                    string http_result = connect_test_url.WebRequest(UtilityExtensions.RequestMode.GET, null);

                    if (!http_result.Equals("OK"))
                    {
                        throw new Exception(string.Format("File Server 連線失敗::\r\n{0}", http_result));
                    }

                    string upload_file_url = publicURIPrefix + "GetFileLink";

                    string parameter = string.Format("opUser={0}&opPassword={1}&fileHandle={2}"
                                                     , Utility.WebConfig.OP_USER
                                                     , Utility.WebConfig.OP_PASS
                                                     , msg_push_image);

                    http_result = upload_file_url.WebRequest(UtilityExtensions.RequestMode.POST, parameter);

                    JSONResonse json_result = JsonConvert.DeserializeObject <JSONResonse>(http_result);

                    if (!json_result.ReturnCode.Equals(0))
                    {
                        throw new Exception(string.Format("取得檔案連結失敗::\r\n{0}", json_result.Message.DecryptBase64()));
                    }

                    msg_push_image = json_result.Result.DecryptBase64();
                }
                string body = body_fromat.Replace("[data_content]", dt.Rows[0]["msg_push_content"].ToString().Trim());
                body = body.Replace("[is_private]", dt.Rows[0]["msg_push_is_private"].ToString().Trim());
                body = body.Replace("[data_link]", dt.Rows[0]["msg_push_hyperlink"].ToString().Trim().Replace("/", "\\/"));
                body = body.Replace("[data_image]", msg_push_image);
                body = body.Replace("[msg_id]", dt.Rows[0]["msg_identifier"].ToString().Trim());

                strSql = this.Update.PushMessagePushBody(this.UID, body, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (result.Equals(0))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("Push Body 寫入失敗,推播申請單號:{0}", this.lblID.Text.HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                    return;
                }
                int push_total = 0;

                #region OS & APP

                int msg_push_os_type = Convert.ToInt16(this.ViewState["msg_push_os_type"].ToString().Trim());

                if (msg_push_os_type > 0)
                {
                    string msg_push_app_identifier = this.ViewState["msg_push_app_identifier"].ToString().Trim();

                    strSql = this.Select.UserDeviceToken(msg_push_os_type, msg_push_app_identifier, this.UID, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    dt = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                    DataTable dt_push_send = new DataTable();
                    dt_push_send.Columns.Add("msg_id", typeof(int));
                    dt_push_send.Columns.Add("msg_push_send_time", typeof(DateTime));
                    dt_push_send.Columns.Add("msg_push_send_recp", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_app_identifier", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_recp_device", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_processor", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_status", typeof(int));
                    dt_push_send.Columns.Add("msg_push_send_user_operation", typeof(int));
                    dt_push_send.Columns.Add("msg_push_send_log", typeof(string));

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        string push_device_token_id = dt.Rows[i]["push_device_token_id"].ToString().Trim();

                        string push_device_token_value = dt.Rows[i]["push_device_token_value"].ToString().Trim();

                        string push_device_token_app_identifier = dt.Rows[i]["push_device_token_app_identifier"].ToString().Trim();

                        string msg_push_send_id = dt.Rows[i]["msg_push_send_id"].ToString().Trim();

                        bool check = String.IsNullOrEmpty(msg_push_send_id);

                        if (!check)
                        {
                            this.WriteLog(string.Format("Token ID 有重覆 ({0})", push_device_token_id)); continue;
                        }
                        DataRow dr_push_send = dt_push_send.NewRow();
                        dr_push_send["msg_id"]                       = Convert.ToInt32(this.UID);
                        dr_push_send["msg_push_send_time"]           = DateTime.Now;
                        dr_push_send["msg_push_send_recp"]           = push_device_token_id;
                        dr_push_send["msg_push_send_app_identifier"] = push_device_token_app_identifier;
                        dr_push_send["msg_push_send_recp_device"]    = push_device_token_value;
                        dr_push_send["msg_push_send_processor"]      = DBNull.Value;
                        dr_push_send["msg_push_send_status"]         = 1;
                        dr_push_send["msg_push_send_user_operation"] = 0;
                        dr_push_send["msg_push_send_log"]            = DBNull.Value;
                        dt_push_send.Rows.Add(dr_push_send);
                    }
                    push_total = dt_push_send.Rows.Count;

                    bool bulk_copy_result = ((DBLibDAO.SqlTransac) this.DBConnTransac.GeneralSqlCmd).InsertBulkCopy("cg_message_push_send", dt_push_send);

                    if (!bulk_copy_result)
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, message = string.Format("1.新增推播名單失敗,推播申請單號:{0},OS Type:{1}", this.UID, msg_push_os_type));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                        return;
                    }
                }
                #endregion

                #region Push List

                if (!String.IsNullOrEmpty(this.HiddenPushListName.Value))
                {
                    string[] push_list = this.HiddenPushListName.Value.Split('|');

                    strSql = this.Select.UserDeviceToken(push_list, msg_push_os_type, this.UID, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    dt = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                    DataTable dt_push_send = new DataTable();
                    dt_push_send.Columns.Add("msg_id", typeof(int));
                    dt_push_send.Columns.Add("msg_push_send_time", typeof(DateTime));
                    dt_push_send.Columns.Add("msg_push_send_recp", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_app_identifier", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_recp_device", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_processor", typeof(string));
                    dt_push_send.Columns.Add("msg_push_send_status", typeof(int));
                    dt_push_send.Columns.Add("msg_push_send_user_operation", typeof(int));
                    dt_push_send.Columns.Add("msg_push_send_log", typeof(string));

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        string push_device_token_id = dt.Rows[i]["push_device_token_id"].ToString().Trim();

                        string push_device_token_value = dt.Rows[i]["push_device_token_value"].ToString().Trim();

                        string push_device_token_app_identifier = dt.Rows[i]["push_device_token_app_identifier"].ToString().Trim();

                        string msg_push_send_id = dt.Rows[i]["msg_push_send_id"].ToString().Trim();

                        DataRow dr_push_send = dt_push_send.NewRow();
                        dr_push_send["msg_id"]                       = Convert.ToInt32(this.UID);
                        dr_push_send["msg_push_send_time"]           = DateTime.Now;
                        dr_push_send["msg_push_send_recp"]           = push_device_token_id;
                        dr_push_send["msg_push_send_app_identifier"] = push_device_token_app_identifier;
                        dr_push_send["msg_push_send_recp_device"]    = push_device_token_value;
                        dr_push_send["msg_push_send_processor"]      = DBNull.Value;
                        dr_push_send["msg_push_send_status"]         = 1;
                        dr_push_send["msg_push_send_user_operation"] = 0;
                        dr_push_send["msg_push_send_log"]            = DBNull.Value;
                        dt_push_send.Rows.Add(dr_push_send);
                    }
                    push_total += dt_push_send.Rows.Count;

                    bool bulk_copy_result = ((DBLibDAO.SqlTransac) this.DBConnTransac.GeneralSqlCmd).InsertBulkCopy("cg_message_push_send", dt_push_send);

                    if (!bulk_copy_result)
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, message = string.Format("2.新增推播名單失敗,推播申請單號:{0},OS Type:{1}", this.UID, msg_push_os_type));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                        return;
                    }
                }
                #endregion

                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, message = string.Format("推播申請單號 {0},核准推播完成\r\n共排入{1}個裝置待發送", this.lblID.Text.HtmlEncode(), push_total.ToString()));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                this.LoadData();
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                dt = null;

                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("退回推播訊息結束"));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnVerify_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("覆核開始"));

                string role_id = this.ViewState["RoleID"].ToString();

                string group_id = this.ViewState["GroupID"].ToString();

                string user_id = this.ViewState["UserID"].ToString();

                int verify_status = (int)this.ViewState["VerifyStatus"];

                message = string.Format("審核編號:{0},單位編號:{1},角色編號:{2},被覆核人員:{3}", this.UID, group_id, role_id, user_id);

                if (String.IsNullOrEmpty(role_id) || String.IsNullOrEmpty(group_id) || String.IsNullOrEmpty(this.UID))
                {
                    this.MessageBox(Mode.LogMode.ERROR, string.Format("發生資訊參數取得錯誤"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyFail), this.PageName, message);

                    return;
                }
                VerifyInfo verifyInfo = JsonConvert.DeserializeObject <VerifyInfo>(this.ViewState["Detail"].ToString());

                verifyInfo.ApprovedID = this.SessionMgr.UserInfos.UserID;

                verifyInfo.ApprovedName = this.SessionMgr.UserInfos.RealName;

                string detail = JsonConvert.SerializeObject(verifyInfo);

                strSql = this.Update.UserRolesVerifyStatus(this.UID, "8", detail.EncryptBase64(), ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, "覆核失敗");

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyFail), this.PageName, message);

                    return;
                }
                strSql = this.Select.UserRoles(user_id, null, group_id, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                string acct_role_id = this.DBConnTransac.GeneralSqlCmd.ExecuteByColumnName(strSql, para, "acct_role_id");

                string status = verify_status == 1 || verify_status == 2 ? "0" : "99";

                if (String.IsNullOrEmpty(acct_role_id))
                {
                    strSql = this.Insert.UserRoles(role_id, user_id, status, ref para);
                }
                else
                {
                    strSql = this.Update.UserRoles(acct_role_id, role_id, status, ref para);
                }

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, "覆核失敗");

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyFail), this.PageName, message);

                    return;
                }
                if (Utility.WebConfig.LoginMode.Equals(1))
                {
                    SoapResult soapDepartmentResult = null;

                    string adws_url = this.GetSystemSetting("ADWS");

                    string adws_group_name = this.GetSystemSetting("AdwsGroupName");

                    string group_code = this.ViewState["GroupCode"].ToString();

                    this.WriteLog(string.Format("AggregateInquiry:{0},{1},{2}", adws_url, group_code, adws_group_name));

                    soapDepartmentResult = this.AggregateInquiry(adws_url, group_code, adws_group_name);

                    this.WriteLog(string.Format("AggregateInquiry.Result:{0}", soapDepartmentResult.Info != null ? soapDepartmentResult.Info.Count.ToString() : "Null"));

                    if (soapDepartmentResult.Info != null && soapDepartmentResult.Info.Count > 0)
                    {
                        bool add_member = true;

                        for (int i = 0; i < soapDepartmentResult.Info.Count; i++)
                        {
                            XmlNode xmlNodeUserInfo = soapDepartmentResult.Info[i];

                            string acct_account = xmlNodeUserInfo.SelectSingleNode("./cg:Id", soapDepartmentResult.Mgr).InnerText.Trim();
                            string acct_name    = xmlNodeUserInfo.SelectSingleNode("./cg:DisplayName", soapDepartmentResult.Mgr).InnerText.Trim();
                            string acct_type    = xmlNodeUserInfo.SelectSingleNode("./cg:Title", soapDepartmentResult.Mgr).InnerText.Trim();

                            if (this.ViewState["Account"].ToString().Equals(acct_account))
                            {
                                add_member = false; break;
                            }
                        }
                        if (status.Equals("0"))
                        {
                            this.WriteLog(string.Format("AddMember::{0},{1},{2}", this.ViewState["Account"].ToString(), add_member, status));
                        }
                        else
                        {
                            this.WriteLog(string.Format("RemoveMember::{0},{1},{2}", this.ViewState["Account"].ToString(), add_member, status));
                        }

                        if (add_member && status.Equals("0") && !this.AddMember(adws_url, this.ViewState["Account"].ToString(), adws_group_name))
                        {
                            this.Rollback();

                            this.MessageBox(Mode.LogMode.ERROR, "覆核失敗,AddMember 發生錯誤");

                            this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyFail), this.PageName, message);

                            return;
                        }
                        else if (!add_member && status.Equals("99") && !this.RemoveMember(adws_url, this.ViewState["Account"].ToString(), adws_group_name))
                        {
                            this.Rollback();

                            this.MessageBox(Mode.LogMode.ERROR, "覆核失敗,RemoveMember 發生錯誤");

                            this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyFail), this.PageName, message);

                            return;
                        }
                    }
                }

                strSql = this.Select.US(user_id, string.Empty, string.Empty, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                string acct_desc = this.DBConnTransac.GeneralSqlCmd.ExecuteByColumnName(strSql, para, "acct_desc");

                if (String.IsNullOrEmpty(acct_desc) || Convert.ToInt32(acct_desc) < 1)
                {
                    #region Login Count

                    strSql = this.Update.LoginCount(user_id, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    #endregion
                }
                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, "覆核成功");

                this.LoadUserInfo();

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Verify), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Overrule, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("覆核結束"));
            }
        }
예제 #17
0
        /// <summary>
        ///
        /// </summary>
        private void LoadData()
        {
            List <IDataParameter> para = null;

            DataTable dt = null;

            string strSql = string.Empty;

            try
            {
                strSql = this.Select.PushMessageApproved(this.UID, null, null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt.Rows.Count == 0)
                {
                    throw new Exception(string.Format("資料取得失敗"));
                }

                int status = Convert.ToInt16(dt.Rows[0]["msg_status"].ToString().Trim());

                this.btnOK.Visible = this.btnReject.Visible = status.Equals(2);

                string color = string.Empty;

                switch (status)
                {
                case 1: color = "Chocolate"; break;

                case 2: color = "Green"; break;

                case 3: color = "Blue"; break;

                case 4: color = "Red"; break;

                case 5: color = "Gray"; break;
                }
                this.lblStatus.InnerHtml = string.Format("<font color=\"{1}\">{0}</font>", status.ToString().GetPushMessageCH().HtmlEncode(), color);

                bool msg_is_send_now = dt.Rows[0]["msg_is_send_now"].ToString().Trim().Equals("1");

                this.HiddenPushImageName.Value = dt.Rows[0]["msg_push_image"].ToString().Trim().EncryptBase64();

                string msg_push_recp_list = dt.Rows[0]["msg_push_recp_list"].ToString().Trim();

                string[] msg_push_recp_list_date = msg_push_recp_list.Split('|');

                this.HiddenPushListName.Value = msg_push_recp_list_date.Length > 0 && !String.IsNullOrEmpty(msg_push_recp_list_date[0]) ? msg_push_recp_list_date[0].DecryptBase64() : string.Empty;

                this.HiddenPushListBody.Value = msg_push_recp_list_date.Length > 1 && !String.IsNullOrEmpty(msg_push_recp_list_date[1]) ? msg_push_recp_list_date[1] : string.Empty;

                this.lblID.Text           = dt.Rows[0]["msg_identifier"].ToString().Trim();
                this.lblApplyMaker.Text   = dt.Rows[0]["msg_apply_maker_name"].ToString().Trim().HtmlEncode();
                this.lblApplyTime.Text    = dt.Rows[0]["msg_apply_time"].ToString().Trim().HtmlEncode();
                this.lblGroup.Text        = dt.Rows[0]["group_name"].ToString().Trim().HtmlEncode();
                this.lblPushTitle.Text    = dt.Rows[0]["msg_push_title"].ToString().Trim().HtmlEncode();
                this.lblPushBody.Text     = dt.Rows[0]["msg_push_content"].ToString().Trim().HtmlEncode();
                this.hyperLinkPush.Text   = this.hyperLinkPush.NavigateUrl = dt.Rows[0]["msg_push_hyperlink"].ToString().Trim().HtmlEncode();
                this.lblPushSendTime.Text = msg_is_send_now ? "即時" : DateTime.Parse(dt.Rows[0]["msg_reserv_send_time"].ToString().Trim()).ToString("yyyy/MM/dd HH:mm:ss");

                string msg_push_os_type = dt.Rows[0]["msg_push_os_type"].ToString().Trim();

                this.ViewState["msg_push_os_type"] = msg_push_os_type;

                string msg_push_app_identifier = dt.Rows[0]["msg_push_app_identifier"].ToString().Trim();

                this.ViewState["msg_push_app_identifier"] = msg_push_app_identifier;

                if (!msg_push_os_type.Equals("0"))
                {
                    this.lblOsType.Text = this.ViewState["msg_push_os_type"].ToString().GetOsTypeCH().HtmlEncode();

                    this.lblAppType.Text = this.ViewState["msg_push_app_identifier"].ToString().HtmlEncode();
                }
                else
                {
                    this.lblOsType.Text = this.lblAppType.Text = "無";
                }

                this.divDanger.Visible = !msg_is_send_now && DateTime.Compare(DateTime.Now, DateTime.Parse(dt.Rows[0]["msg_reserv_send_time"].ToString().Trim())) >= 0;

                if (this.divDanger.Visible)
                {
                    this.MessageBox(this.lblDanger.InnerText);

                    this.btnOK.Visible = false;
                }
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();
            }
        }
        /// <summary>
        ///
        /// </summary>
        private void LoadUserInfo()
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty;

            DataTable dt = null;

            try
            {
                strSql = this.Select.Verify(this.UID, null, null, null, null, null, false, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt == null || !dt.Rows.Count.Equals(1))
                {
                    this.MessageBox(Mode.LogMode.ERROR, string.Format("發生資料取得錯誤"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyLoadFail), this.PageName, string.Empty);

                    return;
                }
                string action_req_time = dt.Rows[0]["action_req_time"].ToString();

                this.ViewState["Detail"] = dt.Rows[0]["action_req_detail"].ToString().Trim().DecryptBase64();

                this.ViewState["VerifyStatus"] = Convert.ToInt32(dt.Rows[0]["action_req_status"].ToString().Trim());

                VerifyInfo verifyInfo = JsonConvert.DeserializeObject <VerifyInfo>(this.ViewState["Detail"].ToString().Trim());

                strSql = this.Select.US(verifyInfo.AcctID, null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt == null || !dt.Rows.Count.Equals(1))
                {
                    this.MessageBox(Mode.LogMode.ERROR, string.Format("發生資料取得錯誤"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyLoadFail), this.PageName, string.Empty);

                    return;
                }
                this.ViewState["UserID"]    = verifyInfo.AcctID;
                this.ViewState["Account"]   = dt.Rows[0]["acct_account"].ToString().Trim();
                this.ViewState["RoleID"]    = verifyInfo.RoleID;
                this.ViewState["GroupID"]   = dt.Rows[0]["group_id"].ToString().Trim();
                this.ViewState["GroupCode"] = dt.Rows[0]["group_code"].ToString().Trim();

                int verify_status = (int)this.ViewState["VerifyStatus"];

                this.btnOverrule.Visible = this.btnVerify.Visible = verify_status <= 3;

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.VerifyLoad), this.PageName, string.Format("審核編號:{0},單位編號:{1},角色編號:{2},被覆核人員:{3}", this.UID, this.ViewState["GroupID"].ToString(), this.ViewState["RoleID"].ToString(), this.ViewState["UserID"].ToString()));

                this.LiteralUserInfo.Text = string.Format("<table id=\"tb_UserInfo\" class=\"table table-striped table-bordered table-hover dataTable no-footer\" cellspacing=\"0\" rules=\"all\" Count=\"1\" border=\"1\" id=\"GridView1\" style=\"border-collapse:collapse;\">\n"
                                                          + "	<tr>\n"
                                                          + "		<th colspan=\"4\" class=\"title\">覆核</th>\n"
                                                          + "	</tr>\n"
                                                          + "	<tr>\n"
                                                          + "		<th>被覆核人員</th>\n"
                                                          + "		<td>{0}</td>\n"
                                                          + "		<th>送核日期</th>\n"
                                                          + "		<td>{1}</td>\n"
                                                          + "	</tr>\n"
                                                          + "	<tr>\n"
                                                          + "		<th>覆核日期</th>\n"
                                                          + "		<td>{6}</td>\n"
                                                          + "		<th>覆核人員</th>\n"
                                                          + "		<td>{7}</td>\n"
                                                          + "	</tr>\n"
                                                          + "	<tr>\n"
                                                          + "		<th>單位</th>\n"
                                                          + "		<td colspan=\"3\">{2}</td>\n"
                                                          + "	</tr>\n"
                                                          + "	<tr>\n"
                                                          + "		<th>覆核項目</th>\n"
                                                          + "		<td colspan=\"3\">{3}</td>\n"
                                                          + "	</tr>\n"
                                                          + "	<tr>\n"
                                                          + "		<th>覆核狀態</th>\n"
                                                          + "		<td colspan=\"3\">{4}</td>\n"
                                                          + "	</tr>\n"
                                                          + "	<tr>\n"
                                                          + "		<th>指派角色</th>\n"
                                                          + "		<td colspan=\"3\">{5}</td>\n"
                                                          + "	</tr>\n"
                                                          + "</table>\n",
                                                          verifyInfo.AcctName.DecryptBase64().HtmlEncode(),
                                                          verifyInfo.SubmittalDate.ToString("yyyy/MM/dd HH:mm:ss").HtmlEncode(),
                                                          string.Format("{0} ({1})", dt.Rows[0]["group_name"].ToString().HtmlEncode(), dt.Rows[0]["group_code"].ToString()).HtmlEncode(),
                                                          verifyInfo.VerifyStatus.ToString().GetVerifyStatusCH().HtmlEncode(),
                                                          verify_status > 3 ? verify_status.ToString().GetVerifyStatusCH().HtmlEncode() : "待審",
                                                          verifyInfo.RoleName.DecryptBase64().HtmlEncode(),
                                                          verify_status > 3 ? action_req_time.HtmlEncode() : string.Empty,
                                                          verify_status > 3 ? verifyInfo.ApprovedName.HtmlEncode() : string.Empty
                                                          );
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();
            }
        }
예제 #19
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("修改角色權限"));

                int status = Convert.ToInt16(this.ddlStatus.SelectedValue);

                string select_role_web = this.HiddenRoleWeb.Value;

                string select_depts = this.HiddenDepts.Value;

                this.WriteLog(string.Format("HiddenRoleWeb::{0}", this.HiddenRoleWeb.Value));

                this.WriteLog(string.Format("HiddenDepts::{0}", this.HiddenDepts.Value));

                this.WriteLog(message = string.Format("角色名稱:{0},狀態為:{1},權限參數為:{2}", this.txtRoleName.Text.Trim(), status.ToString().GetStatusCH(), select_role_web));

                if (!String.IsNullOrEmpty(select_role_web))
                {
                    string[] depts = select_depts.Split(',');

                    this.WriteLog(string.Format("欲附加的單位有{0}個", depts.Length.ToString()));

                    strSql = this.Update.Roles(this.UID, this.txtRoleName.Text.Trim(), status.ToString(), this.txtComment.Text.Trim(), this.SessionMgr.UserInfos.UserID, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    if (result.Equals(0))
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, string.Format("修改角色失敗"));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, string.Format("角色名稱:{0}", this.txtRoleName.Text.Trim()));

                        return;
                    }
                    strSql = this.Delete.RolesWeb(this.UID, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    string[] web_items = select_role_web.Split('|');

                    for (int i = 0; i < web_items.Length; i++)
                    {
                        string web_id = web_items[i].Split('=')[0];

                        int privilege = 0;

                        string[] privileges = web_items[i].Split('=')[1].Split(',');

                        for (int i2 = 0; i2 < privileges.Length; i2++)
                        {
                            if (!String.IsNullOrEmpty(privileges[i2]))
                            {
                                privilege += Convert.ToInt32(privileges[i2]);
                            }
                        }

                        if (privilege == 0)
                        {
                            continue;
                        }

                        this.WriteLog(message = string.Format("角色編號:{0},角色名稱:{1},權限:{2}", this.UID, this.txtRoleName.Text.Trim(), privilege.ToString()));

                        strSql = this.Insert.RolesWeb(this.UID, web_id, privilege.ToString(), ref para);

                        #region SQL Debug

                        this.WriteLog(Mode.LogMode.DEBUG, strSql);

                        this.WriteLog(para.ToLog());

                        #endregion

                        result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                        if (!result.Equals(1))
                        {
                            this.Rollback();

                            this.MessageBox(Mode.LogMode.ERROR, string.Format("修改角色權限失敗"));

                            this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                            return;
                        }
                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Update), this.PageName, message);
                    }
                    strSql = this.Delete.RolesGroup(this.UID, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                    for (int i = 0; i < depts.Length; i++)
                    {
                        if (String.IsNullOrEmpty(depts[i]))
                        {
                            continue;
                        }

                        this.WriteLog(message = string.Format("分派單位編號:{0},角色編號:{1},角色名稱:{2}", depts[i], this.UID, this.txtRoleName.Text.Trim()));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Update), this.PageName, message);

                        strSql = this.Insert.RolesGroup(this.UID, depts[i], ref para);

                        #region SQL Debug

                        this.WriteLog(Mode.LogMode.DEBUG, strSql);

                        this.WriteLog(para.ToLog());

                        #endregion

                        result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                        if (!result.Equals(1))
                        {
                            this.Rollback();

                            this.MessageBox(Mode.LogMode.ERROR, string.Format("分派單位於角色失敗"));

                            this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                            return;
                        }
                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Update), this.PageName, message);
                    }
                    this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                    this.LoadRoleWeb();

                    this.LoadGroup();

                    this.MessageBox(Mode.LogMode.INFO, string.Format("修改成功"));
                }
                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Update), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                this.HiddenRoleWeb.Value = this.HiddenDepts.Value = string.Empty;

                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("修改角色權限結束"));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            DataTable dt_User = null;

            int result = -1;

            try
            {
                string role_id = this.ddlRole.SelectedValue;

                string group_id = this.ddlDept.SelectedValue;

                if (String.IsNullOrEmpty(role_id) || String.IsNullOrEmpty(group_id))
                {
                    return;
                }

                string role_name = this.ddlRole.SelectedItem.Text;

                this.WriteLog(string.Format("準備新增角色成員 ({0})", this.txtUserAccount.Text.Trim()));

                strSql = this.Select.US(null, this.txtUserAccount.Text.Trim(), null, group_id, "0", ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt_User = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                string acct_id = dt_User.Rows.Count > 0 ? dt_User.Rows[0]["acct_id"].ToString().Trim() : string.Empty;

                if (String.IsNullOrEmpty(acct_id))
                {
                    if (!String.IsNullOrEmpty(group_id) && Utility.WebConfig.LoginMode.Equals(1))
                    {
                        #region AggregateInquiry
                        try
                        {
                            SoapResult soapDepartmentResult = null;

                            string adws_url = this.GetSystemSetting("ADWS");

                            string adws_group_name = this.GetSystemSetting("AdwsGroupName");

                            strSql = this.Select.Group(group_id, null, null, null, ref para);

                            #region SQL Debug

                            this.WriteLog(Mode.LogMode.DEBUG, strSql);

                            this.WriteLog(para.ToLog());

                            #endregion

                            string group_code = this.DBConnTransac.GeneralSqlCmd.ExecuteByColumnName(strSql, para, "group_code");

                            if (!String.IsNullOrEmpty(group_code))
                            {
                                this.WriteLog(string.Format("AggregateInquiry:{0},{1},{2}", adws_url, group_code, adws_group_name));

                                soapDepartmentResult = this.AggregateInquiry(adws_url, group_code, adws_group_name);

                                this.WriteLog(string.Format("AggregateInquiry.Result:{0}", soapDepartmentResult.Info != null ? soapDepartmentResult.Info.Count.ToString() : "Null"));

                                if (soapDepartmentResult.Info != null && soapDepartmentResult.Info.Count > 0)
                                {
                                    for (int i = 0; i < soapDepartmentResult.Info.Count; i++)
                                    {
                                        XmlNode xmlNodeUserInfo = soapDepartmentResult.Info[i];

                                        string acct_account2 = xmlNodeUserInfo.SelectSingleNode("./cg:Id", soapDepartmentResult.Mgr).InnerText.Trim();

                                        string acct_name2 = xmlNodeUserInfo.SelectSingleNode("./cg:DisplayName", soapDepartmentResult.Mgr).InnerText.Trim();

                                        string acct_type2 = xmlNodeUserInfo.SelectSingleNode("./cg:Title", soapDepartmentResult.Mgr).InnerText.Trim();

                                        if (!acct_account2.Equals(this.txtUserAccount.Text.Trim()))
                                        {
                                            continue;
                                        }
                                        try
                                        {
                                            strSql = this.Select.AccountType(acct_type2, ref para);

                                            #region SQL Debug

                                            this.WriteLog(Mode.LogMode.DEBUG, strSql);

                                            this.WriteLog(para.ToLog());

                                            #endregion

                                            string type2 = this.DBConnTransac.GeneralSqlCmd.ExecuteByColumnName(strSql, para, "cus_role_role_id");

                                            this.WriteLog(string.Format("Type:{0}={1}", acct_type2, type2));

                                            strSql = this.Insert.LandBack_Account(acct_account2, acct_name2, type2, ref para);

                                            #region SQL Debug

                                            this.WriteLog(Mode.LogMode.DEBUG, strSql);

                                            this.WriteLog(para.ToLog());

                                            #endregion

                                            object acct_id_temp2 = this.DBConnTransac.GeneralSqlCmd.ExecuteItentity(strSql, para);

                                            this.WriteLog(string.Format("同步單位新增使用者:{0}", acct_id_temp2 == null ? "Fail" : "Pass"));

                                            if (acct_id_temp2 == null)
                                            {
                                                this.Rollback();

                                                this.MessageBox(Mode.LogMode.ERROR, message = string.Format("同步單位新增使用者失敗"));

                                                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, null, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, string.Format("Account:{1}\r\n{0}", message, acct_account2)); return;
                                            }
                                            string acct_id_2 = acct_id_temp2.ToString();

                                            strSql = this.Insert.LandBack_AccountExt(acct_id_2, ref para);

                                            #region SQL Debug

                                            this.WriteLog(Mode.LogMode.DEBUG, strSql);

                                            this.WriteLog(para.ToLog());

                                            #endregion

                                            result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                                            this.WriteLog(string.Format("同步單位新增使用者失敗(Ext):{0}", result.Equals(0) ? "Fail" : "Pass"));

                                            if (result.Equals(0))
                                            {
                                                this.Rollback();

                                                this.MessageBox(Mode.LogMode.ERROR, message = string.Format("同步單位新增使用者失敗(Ext)"));

                                                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, null, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, string.Format("Account:{1}\r\n{0}", message, acct_account2)); return;
                                            }
                                            strSql = this.Insert.LandBack_AccountGroup(acct_id_2, group_id, ref para);

                                            #region SQL Debug

                                            this.WriteLog(Mode.LogMode.DEBUG, strSql);

                                            this.WriteLog(para.ToLog());

                                            #endregion

                                            result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                                            this.WriteLog(string.Format("同步單位新增使用者失敗(Group):{0}", result.Equals(0) ? "Fail" : "Pass"));

                                            if (result.Equals(0))
                                            {
                                                this.Rollback();

                                                this.MessageBox(Mode.LogMode.ERROR, message = string.Format("同步單位新增使用者失敗(Group)"));

                                                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, null, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, string.Format("Account:{1}\r\n{0}", message, acct_account2)); return;
                                            }
                                            this.WriteLog(message = string.Format("Account:{0}\r\n同步帳號至資料庫完成", acct_account2));
                                        }
                                        catch (System.Exception ex)
                                        {
                                            this.WriteLog(Log.Mode.LogMode.ERROR, string.Format("btnAdd_Click.AggregateInquiry.Exception::\r\n{0}", ex.ToString()));
                                        }
                                        break;
                                    }
                                }
                            }
                        }
                        catch (System.Exception ex)
                        {
                            this.WriteLog(Log.Mode.LogMode.ERROR, string.Format("btnAdd_Click.AggregateInquiry.Exception::\r\n{0}", ex.ToString()));
                        }
                        #endregion

                        strSql = this.Select.US(null, this.txtUserAccount.Text.Trim(), null, group_id, "0", ref para);

                        #region SQL Debug

                        this.WriteLog(Mode.LogMode.DEBUG, strSql);

                        this.WriteLog(para.ToLog());

                        #endregion

                        dt_User = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                        acct_id = dt_User.Rows.Count > 0 ? dt_User.Rows[0]["acct_id"].ToString().Trim() : string.Empty;
                    }

                    if (String.IsNullOrEmpty(acct_id))
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, message = string.Format("查無該使用者編號 ({0})", this.txtUserAccount.Text.Trim().HtmlEncode()));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                        return;
                    }
                }
                string acct_name = dt_User.Rows[0]["acct_name"].ToString().Trim();

                string acct_status = dt_User.Rows[0]["acct_status"].ToString().Trim();

                if (!acct_status.Equals("0"))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("使用者非啟用狀態 ({0} ({1}))", acct_name.HtmlEncode(), this.txtUserAccount.Text.Trim().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                if (role_id.Equals("-1"))
                {
                    strSql = this.Select.DefaultRole(this.txtUserAccount.Text.Trim(), ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    role_id = this.DBConnTransac.GeneralSqlCmd.ExecuteByColumnName(strSql, para, "role_id");

                    if (String.IsNullOrEmpty(role_id))
                    {
                        this.Rollback();

                        this.MessageBox(Mode.LogMode.ERROR, message = string.Format("該使用者沒有預設的角色 ({0})", this.txtUserAccount.Text.Trim().HtmlEncode()));

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                        return;
                    }
                }
                int verify_status = 1;

                string detail = JsonConvert.SerializeObject(new VerifyInfo()
                {
                    RoleID = role_id, RoleName = role_name.EncryptBase64(), AcctID = acct_id, AcctName = acct_name.EncryptBase64(), CreaterID = this.SessionMgr.UserInfos.UserID, CreaterName = this.SessionMgr.UserInfos.RealName, VerifyStatus = verify_status
                });

                this.WriteLog(detail);

                string status = this.CheckVerify(group_id, acct_id);

                if (!String.IsNullOrEmpty(status))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("該使用者目前已在審核階段【{0}】", status.GetVerifyStatusCH()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                strSql = this.Select.UserRoles(acct_id, null, group_id, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt_User = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt_User.Rows.Count > 0)
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("該使用者已有指派角色 ({0})", dt_User.Rows[0]["acct_role_role_name"].ToString().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                strSql = this.Insert.Verify("1", detail.EncryptBase64(), verify_status.ToString(), this.SessionMgr.UserInfos.UserID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("新增送審失敗 {0}", detail.HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.AddFail), this.PageName, message);

                    return;
                }
                this.WriteLog(message = string.Format("新增送審角色成員 {0}", detail.HtmlEncode()));

                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, string.Format("新增送審成功"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Add), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Add, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                dt_User = null;

                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("新增角色成員結束"));
            }
        }
예제 #21
0
        /// <summary>
        ///
        /// </summary>
        private void LoadLogs()
        {
            Dictionary <string, string> logs = this.ViewState["Logs"] != null ? (Dictionary <string, string>) this.ViewState["Logs"] : null;

            StringBuilder sb = new StringBuilder();

            try
            {
                this.WriteLog(string.Format("查詢系統記錄"));

                if (logs == null)
                {
                    logs = new Dictionary <string, string>();

                    if (!String.IsNullOrEmpty(this.ddlDate.SelectedValue))
                    {
                        string name = string.Format("push_server_{0}.log", this.ddlDate.SelectedValue);

                        string path = Path.Combine(this.MyLog.DirectoryPath, name);

                        if (File.Exists(path))
                        {
                            logs.Add(name.HtmlEncode(), path.HtmlEncode());
                        }
                    }
                    else
                    {
                        DirectoryInfo dirInfo = new DirectoryInfo(this.MyLog.DirectoryPath);

                        FileInfo[] files = dirInfo.GetFiles(string.Format("push_server_*.log"));

                        if (files.Length > 0)
                        {
                            for (int i = files.Length - 1; i >= 0; i--)
                            {
                                string name = files[i].Name;

                                string path = files[i].FullName;

                                string date = name.Replace(files[i].Extension, "").Replace("push_server_", "");

                                logs.Add(name.HtmlEncode(), path.HtmlEncode());

                                DirectoryInfo dirBackupInfo = new DirectoryInfo(this.MyLog.BackupDirectoryPath);

                                FileInfo[] filesBackup = dirInfo.GetFiles(string.Format("push_server_{0}_*.log", date));

                                for (int i2 = 0; i2 < filesBackup.Length; i2++)
                                {
                                    logs.Add(filesBackup[i2].Name, filesBackup[i2].FullName);
                                }

                                filesBackup = null; dirBackupInfo = null;
                            }
                        }
                        files = null; dirInfo = null;

                        GC.Collect(); GC.WaitForPendingFinalizers();
                    }
                    this.ViewState["Logs"] = logs;
                }
                sb.Append(string.Format("<table id=\"tb_Logs\" class=\"table table-striped table-bordered table-hover dataTable no-footer\" cellspacing=\"0\" rules=\"all\" Count=\"1\" border=\"1\" id=\"GridView1\" style=\"border-collapse:collapse;\">"));

                sb.Append(string.Format("<tr>"));
                sb.Append(string.Format("   <th>名稱</th>"));
                sb.Append(string.Format("   <th>下載</th>"));
                sb.Append(string.Format("</tr>"));

                foreach (string key in logs.Keys)
                {
                    sb.Append(string.Format("<tr>"));
                    sb.Append(string.Format("   <th>{0}</th>", key.HtmlEncode()));
                    sb.Append(string.Format("   <th><a target=\"_blank\" href=\"DownloadFile.aspx?path={0}\">下載</a></th>", logs[key].ToString().EncryptDES()));
                    sb.Append(string.Format("</tr>"));
                }
                sb.AppendLine(string.Format("</table>"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, !String.IsNullOrEmpty(this.ddlDate.SelectedValue) ? string.Format("查詢:{0}", this.ddlDate.SelectedValue) : string.Empty);
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                this.WriteLog(string.Format("系統記錄結束"));
            }
            string html = sb.ToString().HtmlEncode();

            this.LiteralLogs.Text = html.HtmlDecode();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            DataTable dt_User = null;

            try
            {
                string role_id = this.ddlRole.SelectedValue;

                string group_id = this.ddlDept.SelectedValue;

                if (String.IsNullOrEmpty(role_id) || String.IsNullOrEmpty(group_id))
                {
                    return;
                }

                string role_name = this.ddlRole.SelectedItem.Text;

                this.WriteLog(string.Format("刪除角色成員"));

                strSql = this.Select.US(null, this.txtUserAccount.Text.Trim(), null, group_id, "0", ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt_User = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                string acct_id = dt_User.Rows.Count > 0 ? dt_User.Rows[0]["acct_id"].ToString().Trim() : string.Empty;

                if (String.IsNullOrEmpty(acct_id))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("查無該使用者編號 ({0})", this.txtUserAccount.Text.Trim().HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.DeleteFail), this.PageName, message);

                    return;
                }
                int verify_status = 3;

                string acct_name = dt_User.Rows[0]["acct_name"].ToString().Trim();

                string detail = JsonConvert.SerializeObject(new VerifyInfo()
                {
                    RoleID = role_id, RoleName = role_name.EncryptBase64(), AcctID = acct_id, AcctName = acct_name.EncryptBase64(), CreaterID = this.SessionMgr.UserInfos.UserID, CreaterName = this.SessionMgr.UserInfos.RealName, VerifyStatus = verify_status
                });

                this.WriteLog(detail);

                string status = this.CheckVerify(group_id, acct_id);

                if (!String.IsNullOrEmpty(status))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("該使用者目前已在審核階段【{0}】", status.GetVerifyStatusCH()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.DeleteFail), this.PageName, message);

                    return;
                }
                strSql = this.Select.UserRoles(acct_id, null, group_id, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                if (!this.DBConnTransac.GeneralSqlCmd.ExecuteScalar(strSql, para))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("該使用者目前沒有任何角色,無法進行刪除"));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.DeleteFail), this.PageName, message);

                    return;
                }
                strSql = this.Insert.Verify("1", detail.EncryptBase64(), verify_status.ToString(), this.SessionMgr.UserInfos.UserID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (!result.Equals(1))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("刪除送審失敗 {0}", detail.HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.DeleteFail), this.PageName, message);

                    return;
                }
                this.WriteLog(message = string.Format("刪除送審角色成員 {0}", detail.HtmlEncode()));

                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, string.Format("刪除送審成功"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Delete), this.PageName, message);
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("刪除角色成員結束"));
            }
        }
예제 #23
0
        /// <summary>
        ///
        /// </summary>
        private void LoadData()
        {
            List <IDataParameter> para = null;

            DataTable dt = null;

            string strSql = string.Empty;

            try
            {
                strSql = this.Select.Group(this.UID, null, null, null, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt.Rows.Count == 0)
                {
                    throw new Exception(string.Format("資料取得失敗"));
                }

                this.lblInfo.InnerText = string.Format("{0}-{1}", dt.Rows[0]["group_code"].ToString().Trim(), dt.Rows[0]["group_name"].ToString().Trim());

                this.txtGroupCode.Text = dt.Rows[0]["group_code"].ToString().Trim();

                this.txtGroupName.Text = dt.Rows[0]["group_name"].ToString().Trim();

                this.ViewState["group_status"] = dt.Rows[0]["group_status"].ToString().Trim();
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlDept_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty;

            DataTable dt = null;

            try
            {
                this.ddlRole.Items.Clear();

                this.WriteLog(string.Format("載入角色清單:{0}", this.ddlDept.SelectedValue));

                if (String.IsNullOrEmpty(this.ddlDept.SelectedValue))
                {
                    return;
                }

                strSql = this.Select.GroupRoles(this.ddlDept.SelectedValue, ref para);

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                this.ddlRole.Items.Add(new ListItem()
                {
                    Text = "系統預設", Value = "-1"
                });

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    this.ddlRole.Items.Add(new ListItem()
                    {
                        Text = Server.HtmlEncode(dt.Rows[i]["role_name"].ToString().Trim()), Value = Server.HtmlEncode(dt.Rows[i]["role_group_role_id"].ToString().Trim())
                    });
                }
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("載入角色清單結束"));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnExport_Click(object sender, EventArgs e)
        {
            string where = this.QueryConditions(new List <string[]>
            {
                new string[] { this.lblStartDate.InnerText, this.txtStartDate.Text.Trim() },
                new string[] { this.lblEndDate.InnerText, this.txtEndDate.Text.Trim() },
                new string[] { this.lblWebName.InnerText, this.ddlWebName.SelectedValue },
                new string[] { this.lblCaption.InnerText, this.ddlCaption.SelectedValue },
                new string[] { this.lblActionMode.InnerText, this.ddlActionMode.SelectedValue, },
                new string[] { this.lblUserAccount.InnerText, this.txtUserAccount.Text.Trim() },
                new string[] { this.lblUserIP.InnerText, this.txtUserIP.Text.Trim() }
            });
            string caption = CaptionMode.Get(CaptionLib.Mode.Export);

            DataTable dt = null;

            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("準備匯出"));

                strSql = this.Select.LogsForExcel(
                    DateTime.Parse(this.txtStartDate.Text).ToString("yyyy/MM/dd 00:00:00"),
                    DateTime.Parse(this.txtEndDate.Text).ToString("yyyy/MM/dd 23:59:59"),
                    this.ddlWebName.SelectedValue,
                    this.ddlCaption.SelectedValue,
                    this.ddlActionMode.SelectedValue,
                    this.txtUserAccount.Text.Trim(),
                    this.txtUserIP.Text.Trim(),
                    ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                if (dt.Rows.Count > 65535)
                {
                    this.MessageBox("發生錯誤", message = string.Format("匯出的資料大於65535筆,請改變條件縮小資料量")); return;
                }
                message = string.Format("{0}\r\n匯出結果共{1}筆", where, dt != null ? dt.Rows.Count : 0);

                dt.ToExcal(this, string.Format("SystemLogs_{0}", DateTime.Now.ToString("yyyyMMdd")));
            }
            catch (System.Exception ex) { this.WriteLog(Log.Mode.LogMode.ERROR, ex.ToString()); this.MessageBox("發生錯誤", string.Format("系統發生錯誤\r\n{0}", ex.Message)); caption = CaptionMode.Get(CaptionLib.Mode.ExportFail); }
            finally
            {
                dt = null;

                this.CloseConn();

                this.WriteLog(string.Format("匯出結束"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Export, this.SessionMgr.UserInfos.UserID, caption, this.PageName, message);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="Anew"></param>
        public void DataBind2(bool Anew)
        {
            if (!this.QueryPermissions)
            {
                return;
            }

            if (String.IsNullOrEmpty(this.txtStartDate.Text) || String.IsNullOrEmpty(this.txtEndDate.Text))
            {
                this.txtStartDate.Text = DateTime.Now.AddDays(-14).ToString("yyyy/MM/dd");

                this.txtEndDate.Text = DateTime.Now.ToString("yyyy/MM/dd");
            }
            string start_date_time = string.Format("{0} {1}:{2}:00", this.txtStartDate.Text.HtmlEncode(), this.ddlStartDateHour.SelectedValue, this.ddlStartDateMinute.SelectedValue);

            string end_date_time = string.Format("{0} {1}:{2}:00", this.txtEndDate.Text.HtmlEncode(), this.ddlEndDateHour.SelectedValue, this.ddlEndDateMinute.SelectedValue);

            string where = this.QueryConditions(new List <string[]>
            {
                new string[] { this.lblStartDate.InnerText, start_date_time },
                new string[] { this.lblEndDate.InnerText, end_date_time },
            });

            int data_mode = Convert.ToInt16(this.ddlData.SelectedValue);

            List <int> status_list = new List <int>();

            if (this.chBoxSendStatus1.Checked)
            {
                status_list.Add(Convert.ToInt16(this.chBoxSendStatus1.Value));
            }
            if (this.chBoxSendStatus2.Checked)
            {
                status_list.Add(Convert.ToInt16(this.chBoxSendStatus2.Value));
            }
            if (this.chBoxSendStatus3.Checked)
            {
                status_list.Add(Convert.ToInt16(this.chBoxSendStatus3.Value));
            }
            if (this.chBoxSendStatus4.Checked)
            {
                status_list.Add(Convert.ToInt16(this.chBoxSendStatus4.Value));
            }

            string caption = CaptionMode.Get(CaptionLib.Mode.Query);

            try
            {
                this.WriteLog(string.Format("準備查詢"));

                List <LinkButton> pageLinkButton = new List <LinkButton>();
                pageLinkButton.Add(this.btnFirst_GridView1);
                pageLinkButton.Add(this.btnPrev_GridView1);
                pageLinkButton.Add(this.btnNext_GridView1);
                pageLinkButton.Add(this.btnLast_GridView1);

                string strSql = string.Empty;

                DataTable dt = null;

                List <IDataParameter> para = null;

                if (Anew)
                {
                    strSql = data_mode.Equals(0) ? this.Select.Report005_Total(start_date_time, end_date_time, this.txtAppID.Text, this.txtContent.Text, this.txtMsgID.Text, status_list, ref para) : this.Select.Report005_Arc_Total(start_date_time, end_date_time, this.txtAppID.Text, this.txtContent.Text, this.txtMsgID.Text, status_list, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    ViewState["Total"] = Convert.ToInt32(this.DBConn.GeneralSqlCmd.ExecuteByColumnName(strSql, para, "Total"));

                    ViewState["PageIndex"] = 1;

                    ViewState["StartIndex"] = 1;

                    ViewState["EndIndex"] = Convert.ToInt32(ViewState["PageIndex"]) * this.GridView1.PageSize;
                }
                strSql = data_mode.Equals(0) ? this.Select.Report005(start_date_time, end_date_time, this.txtAppID.Text, this.txtContent.Text, this.txtMsgID.Text, status_list, Convert.ToInt32(ViewState["StartIndex"]), Convert.ToInt32(ViewState["EndIndex"]), this.GridView1.Attributes[GridViewExtensions.SortBy], ref para) : this.Select.Report005_Arc(start_date_time, end_date_time, this.txtAppID.Text, this.txtContent.Text, this.txtMsgID.Text, status_list, Convert.ToInt32(ViewState["StartIndex"]), Convert.ToInt32(ViewState["EndIndex"]), this.GridView1.Attributes[GridViewExtensions.SortBy], ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                this.DBConn.GeneralSqlCmd.Command.CommandTimeout = 90;

                dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                para = null;

                this.divPageLayer_GridView1.Visible = Convert.ToInt32(ViewState["Total"]) > 0;

                this.GridView1.DataBind(dt, Convert.ToInt32(ViewState["Total"]), Convert.ToInt32(ViewState["StartIndex"]), Convert.ToInt32(ViewState["EndIndex"]), Anew, LockPageNum, this.lblTotalPage_GridView1, this.lblPage_GridView1, pageLinkButton);
            }
            catch (System.Exception ex) { this.WriteLog(Log.Mode.LogMode.ERROR, ex.ToString()); this.MessageBox("發生錯誤", string.Format("系統發生錯誤\r\n{0}", ex.Message)); caption = CaptionMode.Get(CaptionLib.Mode.QueryFail); }
            finally
            {
                this.CloseConn();

                this.WriteLog(string.Format("查詢結束"));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Query, this.SessionMgr.UserInfos.UserID, caption, this.PageName, string.Format("{0}\r\n查詢結果共{1}筆\r\n當前為第{2}頁", where, ViewState[this.GridView1.ClientID] != null ? ((DataTable)ViewState[this.GridView1.ClientID]).Rows.Count : 0, (this.GridView1.PageIndex + 1).ToString()));
            }
        }
        /// <summary>
        ///
        /// </summary>
        private void LoadData()
        {
            try
            {
                bool check = false;

                string url = this.GetSystemSetting("PublicURIPrefix");

                if (!url.EndsWith("/") && !url.EndsWith(@"\"))
                {
                    url += "/";
                }

                string connect_test_url = url + "ConnectTest";

                string http_result = connect_test_url.WebRequest(UtilityExtensions.RequestMode.GET, null);

                check = http_result.StartsWith("OK");

                imgFileServerStatus.Src = check ? "images/sys_pass.png" : "images/sys_fail.png";

                this.lblFileServerStatus.InnerText = check ? "已連線" : "斷線";

                this.lblFileServerStatus.Attributes.Add("style", string.Format("color:#{0}", check ? "0000FF" : "FF0000"));

                url = this.GetSystemSetting("PushGatewayURL");

                if (!url.EndsWith("/") && !url.EndsWith(@"\"))
                {
                    url += "/";
                }

                connect_test_url = url + "ConnectTest";

                http_result = connect_test_url.WebRequest(UtilityExtensions.RequestMode.GET, null);

                check = http_result.StartsWith("OK");

                imgPushGatewayStatus.Src = check ? "images/sys_pass.png" : "images/sys_fail.png";

                this.lblPushGatewayStatus.InnerText = check ? "已連線" : "斷線";

                this.lblPushGatewayStatus.Attributes.Add("style", string.Format("color:#{0}", check ? "0000FF" : "FF0000"));
            }
            catch (System.Exception ex) { this.WriteLog(Log.Mode.LogMode.ERROR, ex.ToString()); this.MessageBox("發生錯誤", string.Format("系統發生錯誤\r\n{0}", ex.Message)); }
            finally
            {
                this.MyMonitor.LogMonitor(this, MonitorActionMode.Load, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Load), this.PageName, string.Empty, true);
            }
        }
예제 #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnReject_Click(object sender, EventArgs e)
        {
            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            try
            {
                this.WriteLog(string.Format("開始退回推播訊息"));

                strSql = this.Update.PushMessageStatus(this.UID, "4", ref para);

                int result = this.DBConn.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (result.Equals(0))
                {
                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("退回推播訊息失敗,推播申請單號:{0}", this.lblID.Text.HtmlEncode()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                    return;
                }
                this.MessageBox(Mode.LogMode.INFO, message = string.Format("退回完成,推播申請單號:{0}", this.lblID.Text.HtmlEncode()));

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                this.LoadData();
            }
            catch (System.Exception ex)
            {
                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                para = null;

                this.CloseConn();

                this.WriteLog(string.Format("退回推播訊息結束"));
            }
        }
        /// <summary>
        ///
        /// </summary>
        private void UpdatePushMessage(PushMessageMode Status)
        {
            string uid = this.RequestQueryString("uid").DecryptDES();

            List <IDataParameter> para = null;

            string strSql = string.Empty, message = string.Empty;

            Hashtable ht = new Hashtable();

            DataTable dt = null;

            try
            {
                this.WriteLog(string.Format("修改推播訊息({0})", Status.GetPushMessageCH()));

                bool send_now = this.sendMode1.Checked;

                DateTime send_time = DateTime.Parse(string.Format("{0} {1}:{2}:00", this.txtSendDate.Text, this.ddlHour.SelectedValue, this.ddlMinute.SelectedValue));

                strSql = this.Update.PushMessage(this.UID, "3", "0", send_now, send_now ? string.Empty : send_time.ToString("yyyy/MM/dd HH:mm:ss"), (int)Status, this.SessionMgr.UserInfos.UserID, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                int result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (result.Equals(0))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("修改{0}失敗", Status.GetPushMessageCH()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                    return;
                }
                string[] push_list = this.chBoxCustList.Checked && !String.IsNullOrEmpty(this.HiddenPushListName.Value) ? this.HiddenPushListName.Value.Split('|') : null;

                string json = string.Empty;

                if (push_list != null)
                {
                    strSql = this.Select.UserDeviceToken(push_list, 0, string.Empty, ref para);

                    #region SQL Debug

                    this.WriteLog(Mode.LogMode.DEBUG, strSql);

                    this.WriteLog(para.ToLog());

                    #endregion

                    dt = this.DBConnTransac.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                    StringBuilder sb = new StringBuilder();

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        StringBuilder sb_item = new StringBuilder();

                        sb_item.Append(string.Format("{0}<", i == 0 ? " " : " ,"));

                        for (int i2 = 0; i2 < dt.Columns.Count; i2++)
                        {
                            string column_name = dt.Columns[i2].ColumnName;

                            sb_item.Append(string.Format("{0}\"{1}\" : \"{2}\""
                                                         , i2 == 0 ? " " : " ,"
                                                         , column_name.ToLower()
                                                         , dt.Rows[i][column_name].ToString().EncryptBase64()
                                                         ));
                        }
                        sb_item.Append(">");

                        sb.AppendLine(sb_item.ToString().Replace("<", "{").Replace(">", "}"));
                    }
                    json = "{ \"Changingtec\": { \"sendList\": [" + sb.ToString() + "] }}";
                }
                string old_file_name = this.ViewState["PushImageName"].ToString();

                bool upload_image = !String.IsNullOrEmpty(this.HiddenPushImageName.Value) && !this.HiddenPushImageName.Value.Equals(old_file_name);

                if (upload_image && !String.IsNullOrEmpty(this.HiddenPushImageBody.Value))
                {
                    string file_body = this.HiddenPushImageBody.Value;

                    string publicURIPrefix = this.HiddenPublicURIPrefix.Value;

                    if (!publicURIPrefix.EndsWith("/") && !publicURIPrefix.EndsWith(@"\"))
                    {
                        publicURIPrefix += "/";
                    }

                    string connect_test_url = publicURIPrefix + "ConnectTest";

                    string http_result = connect_test_url.WebRequest(UtilityExtensions.RequestMode.GET, null);

                    if (!http_result.Equals("OK"))
                    {
                        throw new Exception(string.Format("File Server 連線失敗::\r\n{0}", http_result));
                    }

                    string upload_file_url = publicURIPrefix + "UploadFile";

                    string parameter = string.Format("opUser={0}&opPassword={1}&b64FileContent={2}"
                                                     , Utility.WebConfig.OP_USER
                                                     , Utility.WebConfig.OP_PASS
                                                     , file_body);

                    http_result = upload_file_url.WebRequest(UtilityExtensions.RequestMode.POST, parameter);

                    JSONResonse json_result = JsonConvert.DeserializeObject <JSONResonse>(http_result);

                    if (!json_result.ReturnCode.Equals(0))
                    {
                        throw new Exception(string.Format("檔案上傳失敗::\r\n{0}", json_result.Message.DecryptBase64()));
                    }

                    this.ViewState["PushImageName"] = this.HiddenPushImageName.Value = json_result.Result;

                    if (!String.IsNullOrEmpty(old_file_name))
                    {
                        string delete_file_url = publicURIPrefix + string.Format("{0}?opUser={1}&opPassword={2}&fileHandle={3}"
                                                                                 , "DeleteFile"
                                                                                 , Utility.WebConfig.OP_USER
                                                                                 , Utility.WebConfig.OP_PASS
                                                                                 , old_file_name.DecryptBase64());

                        http_result = delete_file_url.WebRequest(UtilityExtensions.RequestMode.GET, null);

                        this.WriteLog(string.Format("DeleteFile:{0}", http_result));
                    }
                }
                ht.Add("msg_id", this.UID);
                ht.Add("msg_push_title", this.txtPushTitle.Text.Trim());
                ht.Add("msg_push_content", this.txtPushBody.Text.Trim());
                ht.Add("msg_push_hyperlink", this.txtPushHyperlink.Text.Trim());
                ht.Add("msg_push_image", this.HiddenPushImageName.Value.DecryptBase64());
                ht.Add("msg_push_is_private", "0");
                ht.Add("msg_push_os_type", String.IsNullOrEmpty(this.ddlOS.SelectedValue) ? "0" : this.ddlOS.SelectedValue);
                ht.Add("msg_push_app_identifier", this.HiddenAppName.Value.Trim());
                ht.Add("msg_push_recp_list", this.chBoxCustList.Checked ? string.Format("{0}|{1}", this.HiddenPushListName.Value.EncryptBase64(), this.HiddenPushListBody.Value) : string.Empty);
                ht.Add("msg_push_recp_bind_info", json);
                ht.Add("msg_push_type_identifier", String.IsNullOrEmpty(this.ddlType.SelectedValue) ? "0" : this.ddlType.SelectedItem.Text.Split('-')[0]);

                strSql = this.Update.PushMessageDetail(ht, ref para);

                #region SQL Debug

                this.WriteLog(Mode.LogMode.DEBUG, strSql);

                this.WriteLog(para.ToLog());

                #endregion

                result = this.DBConnTransac.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                if (result.Equals(0))
                {
                    this.Rollback();

                    this.MessageBox(Mode.LogMode.ERROR, message = string.Format("修改{0}細節資料失敗", Status.GetPushMessageCH()));

                    this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                    return;
                }
                this.DBConnTransac.GeneralSqlCmd.Transaction.Commit();

                this.MessageBox(Mode.LogMode.INFO, message = string.Format("修改{0}成功", Status.GetPushMessageCH()));

                message += string.Format(",訊息編號:{0}", this.ViewState["IDF"].ToString());

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.UpdateFail), this.PageName, message);

                this.LoadData();
            }
            catch (System.Exception ex)
            {
                this.Rollback();

                this.MessageBox(ex);

                this.MyMonitor.LogMonitor(this, MonitorActionMode.Update, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
            }
            finally
            {
                dt = null;

                ht = null;

                para = null;

                this.CloseConnTransac();

                this.WriteLog(string.Format("修改推播訊息結束({0})", Status.GetPushMessageCH()));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
        {
            GridView gv = (GridView)sender;

            try
            {
                if (e.CommandSource.Equals(gv))
                {
                    return;
                }

                int rowIndex = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;

                GridViewRow row = this.GridView1.Rows[rowIndex];

                string uid = e.CommandArgument.ToString();

                if (e.CommandName == "D")
                {
                    #region Delete

                    string strSql = string.Empty, message = string.Empty;

                    List <IDataParameter> para = null;

                    int result = 0;

                    DataTable dt = null;
                    try
                    {
                        strSql = this.Select.UserRolesByRoleID(uid, null, null, ref para);

                        #region SQL Debug

                        this.WriteLog(Mode.LogMode.DEBUG, strSql);

                        this.WriteLog(para.ToLog());

                        #endregion

                        dt = this.DBConn.GeneralSqlCmd.ExecuteToDataTable(strSql, para);

                        int status = Convert.ToInt32(dt.Rows[0]["acct_role_status"].ToString());

                        string title = status == 0 ? "停用" : "啟用";

                        this.WriteLog(message = string.Format("停用角色所屬人員:{0} ({1})-{2}", this.lblInfo.InnerText, this.UID, uid));

                        strSql = this.Update.UserRoleStatus(uid, status == 0 ? "99" : "0", ref para);

                        result = this.DBConn.GeneralSqlCmd.ExecuteNonQuery(strSql, para);

                        if (result > 0)
                        {
                            this.MessageBox("訊息", string.Format("{0}成功", title));

                            this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.Delete), this.PageName, message);
                        }
                        else
                        {
                            this.MessageBox("發生錯誤", string.Format("{0}失敗", title));

                            this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.DeleteFail), this.PageName, message);
                        }
                        this.DataBind(true, true);
                    }
                    catch (System.Exception ex)
                    {
                        this.MessageBox(ex);

                        this.MyMonitor.LogMonitor(this, MonitorActionMode.Delete, this.SessionMgr.UserInfos.UserID, CaptionMode.Get(CaptionLib.Mode.SystemError), this.PageName, ex.Message);
                    }
                    finally
                    {
                        para = null;

                        this.CloseConn();
                    }
                    #endregion
                }
            }
            catch (System.Exception ex) { this.WriteLog(Log.Mode.LogMode.ERROR, ex.ToString()); this.MessageBox("發生錯誤", string.Format("系統發生錯誤\r\n{0}", ex.Message)); }
        }