using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.TestRunManage
{
    public partial class SetWorkPackage : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
                // 绑定表格
                BindGrid();
            }
        }
        #region 绑定数据
        /// 
        /// 绑定数据
        /// 
        private void BindGrid()
        {
            string strSql = @"select WorkPackId,WorkPackName,Remark,AddTime,Sort from TestRun_WorkPackage WHERE 1=1 ";
            List listStr = new List();
            if (!string.IsNullOrEmpty(this.txtsWorkPackName.Text.Trim()))
            {
                strSql += " AND WorkPackName LIKE @WorkPackName";
                listStr.Add(new SqlParameter("@WorkPackName", "%" + this.txtsWorkPackName.Text.Trim() + "%"));
            }
            SqlParameter[] parameter = listStr.ToArray();
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            // 2.获取当前分页数据
            Grid1.RecordCount = tb.Rows.Count;
            tb = GetFilteredTable(Grid1.FilteredData, tb);
            var table = this.GetPagedDataTable(Grid1, tb);
            Grid1.DataSource = table;
            Grid1.DataBind();
        }
        #endregion
        #region 分页排序
        /// 
        /// 
        /// 
        /// 
        /// 
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
        {
            Grid1.PageIndex = e.NewPageIndex;
            BindGrid();
        }
        /// 
        /// 分页下拉选择
        /// 
        /// 
        /// 
        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
        {
            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
            BindGrid();
        }
        /// 
        /// 
        /// 
        /// 
        /// 
        protected void Grid1_FilterChange(object sender, EventArgs e)
        {
            BindGrid();
        }
        /// 
        /// 排序
        /// 
        /// 
        /// 
        protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
        {
            Grid1.SortDirection = e.SortDirection;
            Grid1.SortField = e.SortField;
            BindGrid();
        }
        #endregion
        #region 删除事件
        /// 
        /// 删除
        /// 
        /// 
        /// 
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            var isData = Funs.DB.PreRun_SubSysWorkPackage.Count(p => p.WorkPackId == hfFormID.Text);
            if (isData == 0)
            {
                var mdoel = Funs.DB.TestRun_WorkPackage.FirstOrDefault(p => p.WorkPackId == hfFormID.Text);
                Funs.DB.TestRun_WorkPackage.DeleteOnSubmit(mdoel);
                Funs.DB.SubmitChanges();
                // 重新绑定表格,并模拟点击[新增按钮]
                BindGrid();
                PageContext.RegisterStartupScript("onNewButtonClick();");
            }
            else
            {
                ShowNotify("子系统已选择此工作包,无法进行删除操作!", MessageBoxIcon.Error);
                return;
            }
        }
        /// 
        /// 右键删除事件
        /// 
        /// 
        /// 
        protected void btnMenuDelete_Click(object sender, EventArgs e)
        {
            this.DeleteData();
        }
        /// 
        /// 删除方法
        /// 
        private void DeleteData()
        {
            if (Grid1.SelectedRowIndexArray.Length == 0)
            {
                ShowNotify("请选择数据!", MessageBoxIcon.Error);
                return;
            }
            foreach (int rowIndex in Grid1.SelectedRowIndexArray)
            {
                var isData = Funs.DB.PreRun_SubSysWorkPackage.Count(p => p.WorkPackId == hfFormID.Text);
                if (isData == 0)
                {
                    string rowID = Grid1.DataKeys[rowIndex][0].ToString();
                    var model = Funs.DB.TestRun_WorkPackage.FirstOrDefault(e => e.WorkPackId == rowID);
                    if (model != null)
                    {
                        Funs.DB.TestRun_WorkPackage.DeleteOnSubmit(model);
                        Funs.DB.SubmitChanges();
                        ShowNotify("删除成功!", MessageBoxIcon.Error);
                        return;
                    }
                }
                else
                {
                    ShowNotify("子系统已选择此工作包,无法进行删除操作!", MessageBoxIcon.Error);
                    return;
                }
            }
            BindGrid();
            PageContext.RegisterStartupScript("onNewButtonClick();");
        }
        #endregion
        #region 编辑
        /// 
        /// 右键编辑事件
        /// 
        /// 
        /// 
        protected void btnMenuEdit_Click(object sender, EventArgs e)
        {
            this.EditData();
        }
        /// 
        /// 编辑数据方法
        /// 
        private void EditData()
        {
            if (Grid1.SelectedRowIndexArray.Length == 0)
            {
                Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
                return;
            }
            string Id = Grid1.SelectedRowID;
            var model = Funs.DB.TestRun_WorkPackage.FirstOrDefault(e => e.WorkPackId == Id);
            if (model != null)
            {
                this.txtWorkPackName.Text = model.WorkPackName;
                this.txtRemark.Text = model.Remark;
                hfFormID.Text = Id;
                this.btnDelete.Enabled = true;
            }
        }
        #endregion
        #region 提交按钮
        /// 
        /// 提交按钮
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string strRowID = hfFormID.Text;
            var deteion = Funs.DB.TestRun_WorkPackage.Count(p => p.WorkPackName == txtWorkPackName.Text.Trim() && p.WorkPackId != strRowID);
            if (deteion > 0)
            {
                Alert.ShowInTop("此工作包名称已存在!", MessageBoxIcon.Warning);
                return;
            }
            if (string.IsNullOrEmpty(strRowID))
            {
                TestRun_WorkPackage model = new TestRun_WorkPackage();
                model.WorkPackId = Guid.NewGuid().ToString();
                model.WorkPackName = this.txtWorkPackName.Text.Trim();
                model.Remark = this.txtRemark.Text.Trim();
                Funs.DB.TestRun_WorkPackage.InsertOnSubmit(model);
                Funs.DB.SubmitChanges();
            }
            else
            {
                Model.TestRun_WorkPackage model = Funs.DB.TestRun_WorkPackage.FirstOrDefault(p => p.WorkPackId == strRowID);
                if (model != null)
                {
                    model.WorkPackName = this.txtWorkPackName.Text.Trim();
                    model.Remark = this.txtRemark.Text.Trim();
                    Funs.DB.SubmitChanges();
                }
            }
            // 重新绑定表格,并点击当前编辑或者新增的行
            BindGrid();
            Alert.ShowInTop("提交成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript("onNewButtonClick();");
        }
        #endregion
        #region 查询
        /// 
        /// 查询
        /// 
        /// 
        /// 
        protected void TextBox_TextChanged(object sender, EventArgs e)
        {
            this.BindGrid();
        }
        #endregion
    }
}