using BLL;
using System;
using System.Linq;

namespace FineUIPro.Web.CQMS.ProcessControl
{
    public partial class TestPackageManagementEdit :PageBase
    {
        #region 定义变量
        /// <summary>
        /// 主键
        /// </summary>
        private string TestPackageManagementId
        {
            get
            {
                return (string)ViewState["TestPackageManagementId"];
            }
            set
            {
                ViewState["TestPackageManagementId"] = value;
            }
        }
        #endregion

        #region 加载
        /// <summary>
        /// 加载页面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetButtonPower();
                UnitWorkService.InitUnitWorkDownList(drpUnitWork, this.CurrUser.LoginProjectId, true);
                this.TestPackageManagementId = Request.Params["TestPackageManagementId"];
                if (!string.IsNullOrEmpty(this.TestPackageManagementId))
                {
                    Model.ProcessControl_TestPackageManagement testPackageManagement = BLL.TestPackageManagementService.GetTestPackageManagementById(this.TestPackageManagementId);
                    if (testPackageManagement != null)
                    {
                        this.txtTestPackageManagementCode.Text = testPackageManagement.TestPackageManagementCode;
                        if (!string.IsNullOrEmpty(testPackageManagement.UnitWorkId))
                        {
                            this.drpUnitWork.SelectedValue = testPackageManagement.UnitWorkId;
                        }
                        this.txtTestMedium.Text = testPackageManagement.TestMedium;
                        this.txtTestPressure.Text = testPackageManagement.TestPressure;
                        if (testPackageManagement.PlanTestDate != null)
                        {
                            this.txtPlanTestDate.Text = string.Format("{0:yyyy-MM-dd}", testPackageManagement.PlanTestDate);
                        }
                        if (testPackageManagement.CompletedDate != null)
                        {
                            this.txtCompletedDate.Text = string.Format("{0:yyyy-MM-dd}", testPackageManagement.CompletedDate);
                        }
                        this.rblCompletedState.SelectedValue = testPackageManagement.CompletedState;
                        this.txtRemark.Text = testPackageManagement.Remark;
                    }
                }
            }
        }
        #endregion

        #region 保存
        /// <summary>
        /// 保存按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (this.drpUnitWork.SelectedValue==BLL.Const._Null)
            {
                Alert.ShowInTop("请选择单位工程名称!", MessageBoxIcon.Warning);
                return;
            }
            Model.ProcessControl_TestPackageManagement testPackageManagement = new Model.ProcessControl_TestPackageManagement();
            testPackageManagement.ProjectId = this.CurrUser.LoginProjectId;
            testPackageManagement.TestPackageManagementCode = this.txtTestPackageManagementCode.Text.Trim();
            if (this.drpUnitWork.SelectedValue != BLL.Const._Null)
            {
                testPackageManagement.UnitWorkId = this.drpUnitWork.SelectedValue;
            }
            testPackageManagement.TestMedium = this.txtTestMedium.Text.Trim();
            testPackageManagement.TestPressure = this.txtTestPressure.Text.Trim();
            if (!string.IsNullOrEmpty(this.txtPlanTestDate.Text))
            {
                testPackageManagement.PlanTestDate = Convert.ToDateTime(this.txtPlanTestDate.Text);
            }
            if (!string.IsNullOrEmpty(this.txtCompletedDate.Text))
            {
                testPackageManagement.CompletedDate = Convert.ToDateTime(this.txtCompletedDate.Text);
            }
            testPackageManagement.CompletedState = this.rblCompletedState.SelectedValue;
            testPackageManagement.Remark = this.txtRemark.Text.Trim();
            if (string.IsNullOrEmpty(this.TestPackageManagementId))
            {
                testPackageManagement.TestPackageManagementId = SQLHelper.GetNewID(typeof(Model.ProcessControl_TestPackageManagement));
                BLL.TestPackageManagementService.AddTestPackageManagement(testPackageManagement);
            }
            else
            {
                testPackageManagement.TestPackageManagementId = this.TestPackageManagementId;
                BLL.TestPackageManagementService.UpdateTestPackageManagement(testPackageManagement);
            }
            ShowNotify("保存成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        #endregion

        #region 获取按钮权限
        /// <summary>
        /// 获取按钮权限
        /// </summary>
        /// <param name="button"></param>
        /// <returns></returns>
        private void GetButtonPower()
        {
            if (Request.Params["value"] == "0")
            {
                return;
            }
            var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TestPackageManagementMenuId);
            if (buttonList.Count() > 0)
            {
                if (buttonList.Contains(BLL.Const.BtnSave))
                {
                    this.btnSave.Hidden = false;
                }
            }
        }
        #endregion
    }
}