using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace FineUIPro.Web.Transfer
{
    public partial class RotatingEquipmentEdit : PageBase
    {
        #region 定义项
        /// 
        /// 主键
        /// 
        private string Id
        {
            get
            {
                return (string)ViewState["Id"];
            }
            set
            {
                ViewState["Id"] = value;
            }
        }
        /// 
        /// 项目主键
        /// 
        public string ProjectId
        {
            get
            {
                return (string)ViewState["ProjectId"];
            }
            set
            {
                ViewState["ProjectId"] = value;
            }
        }
        #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Id = Request.Params["Id"];
                ProjectId = this.CurrUser.LoginProjectId;
                if (!string.IsNullOrEmpty(Id))
                {
                    var model = Funs.DB.Transfer_RotatingEquipment.FirstOrDefault(x => x.Id == Id);
                    if (model != null)
                    {
                        txtSN.Text = model.SN.ToString();
                        txtRotatingEquipment.Text = model.RotatingEquipment;
                        txtSYSTEM.Text = model.SYSTEM;
                        txtSubsystem.Text = model.Subsystem;
                        txtTestPackage.Text = model.TestPackage;
                        ddlAlignment.SelectedValue = model.Alignment;
                        ddlMotorsoloruntest.SelectedValue = model.Motorsoloruntest;
                        ddlStandalonetest.SelectedValue = model.Standalonetest;
                        ddlLubricatefilling.SelectedValue = model.Lubricatefilling;
                        txtDescriptions.Text = model.Descriptions;
                    }
                }
                else
                {
                    var model = Funs.DB.Transfer_RotatingEquipment.OrderByDescending(x => x.SN).FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId);
                    if (model == null)
                        txtSN.Text = "1001";
                    else
                        txtSN.Text = (model.SN + 1).ToString();
                }
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            var model = new Model.Transfer_RotatingEquipment
            {
                SN = Convert.ToInt32(txtSN.Text),
                ProjectId = ProjectId,
                RotatingEquipment = txtRotatingEquipment.Text,
                SYSTEM = txtSYSTEM.Text,
                Subsystem = txtSubsystem.Text,
                TestPackage = txtTestPackage.Text,
                Alignment = ddlAlignment.SelectedValue,
                Motorsoloruntest = ddlMotorsoloruntest.SelectedValue,
                Standalonetest = ddlStandalonetest.SelectedValue,
                Descriptions= txtDescriptions.Text,
                Lubricatefilling=ddlLubricatefilling.SelectedValue
            };
            #region 判断状态
            var listObj = new List();
            listObj.Add(model.Alignment);
            listObj.Add(model.Motorsoloruntest);
            listObj.Add(model.Standalonetest);
            listObj.Add(model.Lubricatefilling);
            model.MechanicalFINALStatus = "Not Start";
            //全是NA或Completed 状态是Completed
            if (listObj.Where(x => x == "NA" || x == "Completed").ToList().Count == 4)
            {
                model.MechanicalFINALStatus = "Completed";
            }
            //如果全是NA或Not Start、空 就是 Not Start
            else if (listObj.Where(x => string.IsNullOrWhiteSpace(x) || x == "NA" || x == "Not Start").ToList().Count == 4)
            {
                model.MechanicalFINALStatus = "Not Start";
            }
            //如果其中有一项是In progress 或Not Start、空 是 In progress
            else if (listObj.Where(x => string.IsNullOrWhiteSpace(x) || x == "In progress" || x == "Not Start").ToList().Count >= 1)
            {
                model.MechanicalFINALStatus = "In progress";
            }
            #endregion
            if (!string.IsNullOrEmpty(Id))
            {
                var newModel = Funs.DB.Transfer_RotatingEquipment.FirstOrDefault(x => x.Id == Id);
                if (newModel != null)
                {
                    newModel.SN = model.SN;
                    newModel.RotatingEquipment = txtRotatingEquipment.Text;
                    newModel.SYSTEM = txtSYSTEM.Text;
                    newModel.Subsystem = txtSubsystem.Text;
                    newModel.TestPackage = txtTestPackage.Text;
                    newModel.Alignment = ddlAlignment.SelectedValue;
                    newModel.Motorsoloruntest = ddlMotorsoloruntest.SelectedValue;
                    newModel.Standalonetest = ddlStandalonetest.SelectedValue;
                    newModel.MechanicalFINALStatus = model.MechanicalFINALStatus;
                    newModel.Descriptions = txtDescriptions.Text;
                    newModel.Lubricatefilling = ddlLubricatefilling.SelectedValue;
                }
            }
            else
            {
                model.Id = Id = Guid.NewGuid().ToString();
                Funs.DB.Transfer_RotatingEquipment.InsertOnSubmit(model);
            }
            Funs.DB.SubmitChanges();
            ShowNotify("保存成功", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
    }
}