using BLL;
using FineUIPro.Web.DataShow;
using FineUIPro.Web.ProjectData;
using Microsoft.Office.Interop.Word;
using Model;
using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.Web;
using System.Web.Services.Description;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.ProduceTestRun
{
    public partial class RunningLogManagementEdit : PageBase
    {
        /// 
        /// 日志
        /// 
        public string MainId { get { return (string)ViewState["MainId"]; } set { ViewState["MainId"] = value; } }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.MainId = Request["MainId"];
                PageBase();
            }
        }
        /// 
        /// 页面控件处理
        /// 
        public void PageBase()
        {
            //获取系统
            var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
            if (alllist.Count > 0)
            {
                var engineeringModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "公用工程");
                if (engineeringModel != null)
                {
                    var engsyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == engineeringModel.PreRunId).ToList();
                    if (engsyslist.Count > 0)
                    {
                        int i = 0;
                        ListItem[] list = new ListItem[engsyslist.Count];
                        foreach (var item in engsyslist)
                        {
                            list[i] = new ListItem(item.PreRunName, item.PreRunId);
                            i++;
                        }
                        this.rdbEngineeringOperation.DataSource = list;
                        this.rdbEngineeringOperation.DataBind();
                    }
                }
                var deviceModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "工艺装置");
                if (deviceModel != null)
                {
                    var devicesyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == deviceModel.PreRunId).ToList();
                    if (devicesyslist.Count > 0)
                    {
                        int i = 0;
                        ListItem[] list = new ListItem[devicesyslist.Count];
                        foreach (var item in devicesyslist)
                        {
                            list[i] = new ListItem(item.PreRunName, item.PreRunId);
                            i++;
                        }
                        this.rdbDeviceOption.DataSource = list;
                        this.rdbDeviceOption.DataBind();
                    }
                }
            }
            //获取人员
            var userList = from user in Funs.DB.Sys_User
                           join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
                           where projectrole.ProjectId == this.CurrUser.LoginProjectId
                           select user;
            var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
            var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
            var users = userList.ToList();
            if (addUserList.Count() > 0)
            {
                users.AddRange(addUserList);
            }
            //轮班职工
            ddlShiftUser.DataTextField = "UserName";
            ddlShiftUser.DataValueField = "UserId";
            ddlShiftUser.DataSource = users;
            ddlShiftUser.DataBind();
            ddlShiftUser.SelectedValue = this.CurrUser.UserId;
            //继任职工
            ddlSuccessionUser.DataTextField = "UserName";
            ddlSuccessionUser.DataValueField = "UserId";
            ddlSuccessionUser.DataSource = users;
            ddlSuccessionUser.DataBind();
            ddlSuccessionUser.SelectedValue = this.CurrUser.UserId;
            var mainModel = Funs.DB.Running_LogMain.FirstOrDefault(x => x.MainId == this.MainId);
            if (mainModel != null)
            {
                var managements = Funs.DB.Running_LogManagement.Where(x => x.MainId == this.MainId).ToList();
                var manaModel = managements.FirstOrDefault();
                var options = managements.ConvertAll(x => x.SystemId);
                txtJobNo.Text = mainModel.JobNo;
                ddlShiftUser.SelectedValue = manaModel.ShiftUser;
                ddlSuccessionUser.SelectedValue = manaModel.SuccessionUser;
                txtStartData.Text = mainModel.StartData.Value.ToString("yyyy-MM-dd HH:mm:ss");
                txtEndData.Text = mainModel.EndData.Value.ToString("yyyy-MM-dd HH:mm:ss");
                txtHandoverCare.Text = manaModel.HandoverCare;
                rdbEngineeringOperation.SelectedValueArray = options.ToArray();
                EngineeringDataBrid();
                rdbDeviceOption.SelectedValueArray = options.ToArray();
                DriveDataBrid();
                gvOperationBrid();
                gvMaintenanceBrid();
            }
            else
            {
                txtJobNo.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.Running_LogManagement", "JobNo", "13022-PS81-");
            }
        }
        /// 
        /// 公用工程选择项
        /// 
        protected void rdbEngineeringOperation_SelectedIndexChanged(object sender, EventArgs e)
        {
            var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
            if (alllist.Count == 0) return;
            var engineeringModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "公用工程");
            if (engineeringModel == null) return;
            var engsyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == engineeringModel.PreRunId).ToList();
            if (engsyslist.Count == 0) return;
            var rdbIdArr = rdbEngineeringOperation.SelectedItemArray;
            var list = gvEngineeringSystemOptionLs();
            foreach (var item in rdbIdArr)
            {
                if (list.Count(x => x.SystemId == item.Value) > 0) continue;
                var itemsys = engsyslist.FirstOrDefault(x => x.PreRunId == item.Value);
                list.Add(new Running_LogManagementDto
                {
                    RunningId = Guid.NewGuid().ToString(),
                    ProjectId = this.CurrUser.LoginProjectId,
                    InstallationId = itemsys.InstallationId,
                    ProcessesId = itemsys.ProcessesId,
                    SystemId = itemsys.SystemId,
                    SystemName = itemsys.PreRunName,
                    Situation = "",
                    Remarks = "",
                    AddUser = CurrUser.UserId,
                    AddTime = DateTime.Now,
                });
            }
            list.RemoveAll(r => !rdbEngineeringOperation.SelectedValueArray.Contains(r.SystemId));
            EngineeringDataBrid(list);
        }
        /// 
        /// 工艺装置选择项
        /// 
        protected void rdbDeviceOption_SelectedIndexChanged(object sender, EventArgs e)
        {
            var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
            if (alllist.Count == 0) return;
            var deviceModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "工艺装置");
            if (deviceModel == null) return;
            var drivesyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == deviceModel.PreRunId).ToList();
            if (drivesyslist.Count == 0) return;
            var rdbIdArr = rdbDeviceOption.SelectedItemArray;
            var list = gvDeviceSystemOptionLs();
            foreach (var item in rdbIdArr)
            {
                if (list.Count(x => x.SystemId == item.Value) > 0) continue;
                var itemsys = drivesyslist.FirstOrDefault(x => x.PreRunId == item.Value);
                list.Add(new Running_LogManagementDto
                {
                    RunningId = Guid.NewGuid().ToString(),
                    ProjectId = this.CurrUser.LoginProjectId,
                    InstallationId = itemsys.InstallationId,
                    ProcessesId = itemsys.ProcessesId,
                    SystemId = itemsys.SystemId,
                    SystemName = itemsys.PreRunName,
                    Situation = "",
                    Remarks = "",
                    AddUser = CurrUser.UserId,
                    AddTime = DateTime.Now,
                });
            }
            list.RemoveAll(r => !rdbDeviceOption.SelectedValueArray.Contains(r.SystemId));
            DriveDataBrid(list);
        }
        /// 
        /// 保存
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            List list = new List();
            if (string.IsNullOrWhiteSpace(ddlShiftUser.SelectedValue))
            {
                ShowNotify("请选择轮班职工!", MessageBoxIcon.Warning);
                return;
            }
            if (string.IsNullOrWhiteSpace(ddlSuccessionUser.SelectedValue))
            {
                ShowNotify("请选择继任职工!", MessageBoxIcon.Warning);
                return;
            }
            var englist = gvEngineeringSystemOptionLs();
            if (englist.Count > 0) list.AddRange(englist);
            var devlist = gvDeviceSystemOptionLs();
            if (devlist.Count > 0) list.AddRange(devlist);
            if (list.Count == 0)
            {
                ShowNotify("请选择公用工程或工艺装置的系统!", MessageBoxIcon.Warning);
                return;
            }
            var optionlist = gvOperationLs();
            if (optionlist.Count == 0)
            {
                ShowNotify("请添加操作问题!", MessageBoxIcon.Warning);
                return;
            }
            var maintenancelist = gvMaintenanceLs();
            if (maintenancelist.Count == 0)
            {
                ShowNotify("请添加维护问题!", MessageBoxIcon.Warning);
                return;
            }
            var main = Funs.DB.Running_LogMain.FirstOrDefault(x => x.MainId == this.MainId);
            var addlist = new List();
            var addoptionlist = new List();
            var addmaintenancelist = new List();
            //删除系统日志记录
            var deleteRunnings = Funs.DB.Running_LogManagement.Where(x => x.MainId == this.MainId);
            if (deleteRunnings.Count() > 0)
            {
                Funs.DB.Running_LogManagement.DeleteAllOnSubmit(deleteRunnings);
                Funs.DB.SubmitChanges();
            }
            bool add = false;
            if (main == null)
            {
                add = true;
                main = new Running_LogMain();
                main.MainId = Guid.NewGuid().ToString();
                main.AddUser = this.CurrUser.UserId;
                main.AddTime = DateTime.Now;
            }
            main.ProjectId = this.CurrUser.LoginProjectId;
            main.JobNo = txtJobNo.Text;
            main.ShiftType = ddlShiftType.SelectedValue;
            main.StartData = DateTime.Parse(txtStartData.Text);
            main.EndData = DateTime.Parse(txtEndData.Text);
            if (add) Funs.DB.Running_LogMain.InsertOnSubmit(main);
            //子系统
            foreach (var item in list)
            {
                var model = new Running_LogManagement();
                model.RunningId = Guid.NewGuid().ToString();
                model.ProjectId = this.CurrUser.LoginProjectId;
                model.MainId = main.MainId;
                model.InstallationId = item.InstallationId;
                model.ProcessesId = item.ProcessesId;
                model.SystemId = item.SystemId;
                model.JobNo = txtJobNo.Text;
                model.HandoverCare = txtHandoverCare.Text;
                model.ShiftType = ddlShiftType.SelectedValue;
                model.ShiftUser = ddlShiftUser.SelectedValue;
                model.SuccessionUser = ddlSuccessionUser.SelectedValue;
                model.StartData = DateTime.Parse(txtStartData.Text);
                model.EndData = DateTime.Parse(txtEndData.Text);
                model.Situation = item.Situation;
                model.Remarks = item.Remarks;
                model.AddUser = this.CurrUser.UserId;
                model.AddTime = DateTime.Now;
                model.Sort = item.Sort;
                addlist.Add(model);
            }
            //操作问题
            foreach (var itemoption in optionlist)
            {
                addoptionlist.Add(new Running_Operation()
                {
                    OperationId = Guid.NewGuid().ToString(),
                    MainId = main.MainId,
                    OperationReason = itemoption.OperationReason,
                    OperationHandle = itemoption.OperationHandle,
                    ProjectId = this.CurrUser.LoginProjectId,
                    AddUser = this.CurrUser.UserId,
                    AddTime = DateTime.Now,
                });
            }
            //维护问题
            foreach (var itemmain in maintenancelist)
            {
                addmaintenancelist.Add(new Running_Maintenance()
                {
                    MaintenanceId = Guid.NewGuid().ToString(),
                    MainId = main.MainId,
                    MaintenanceReason = itemmain.MaintenanceReason,
                    MaintenanceHandle = itemmain.MaintenanceHandle,
                    ProjectId = this.CurrUser.LoginProjectId,
                    AddUser = this.CurrUser.UserId,
                    AddTime = DateTime.Now,
                });
            }
            if (addlist.Count > 0) Funs.DB.Running_LogManagement.InsertAllOnSubmit(addlist);
            var deleteOperas = Funs.DB.Running_Operation.Where(x => x.MainId == this.MainId).ToList();
            if (deleteOperas.Count > 0)
            {
                Funs.DB.Running_Operation.DeleteAllOnSubmit(deleteOperas);
                Funs.DB.SubmitChanges();
            }
            var deleteMaints = Funs.DB.Running_Maintenance.Where(x => x.MainId == this.MainId).ToList();
            if (deleteMaints.Count > 0)
            {
                Funs.DB.Running_Maintenance.DeleteAllOnSubmit(deleteMaints);
                Funs.DB.SubmitChanges();
            }
            Funs.DB.Running_Operation.InsertAllOnSubmit(addoptionlist);
            Funs.DB.Running_Maintenance.InsertAllOnSubmit(addmaintenancelist);
            Funs.DB.SubmitChanges();
            ShowNotify("操作成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        /// 
        /// 公用工程日志管理绑定
        /// 
        public void EngineeringDataBrid(List list = null)
        {
            var engineeringModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && x.PreRunName.Trim() == "公用工程");
            if (engineeringModel == null)
            {
                list = new List();
                gvEngineeringOption.DataSource = list;
                gvEngineeringOption.DataBind();
                return;
            }
            if (list == null)
            {
                list = new List();
                var query = from a in Funs.DB.Running_LogManagement
                            join b in Funs.DB.PreRun_SysDevice on a.SystemId equals b.PreRunId
                            where a.MainId == this.MainId && a.InstallationId == engineeringModel.PreRunId
                            orderby a.Sort ascending
                            select new Running_LogManagementDto
                            {
                                RunningId = a.RunningId,
                                ProjectId = a.ProjectId,
                                InstallationId = a.InstallationId,
                                ProcessesId = a.ProcessesId,
                                SystemId = a.SystemId,
                                SystemName = b.PreRunName,
                                JobNo = a.JobNo,
                                ShiftType = a.ShiftType,
                                ShiftUser = a.ShiftUser,
                                SuccessionUser = a.SuccessionUser,
                                StartData = a.StartData,
                                EndData = a.EndData,
                                Situation = a.Situation,
                                Remarks = a.Remarks,
                                HandoverCare = a.HandoverCare,
                                AddUser = a.AddUser,
                                AddTime = a.AddTime
                            };
                var data = query.ToList();
                if (data.Count > 0) list.AddRange(data);
            }
            gvEngineeringOption.DataSource = list;
            gvEngineeringOption.DataBind();
        }
        /// 
        /// 获取公用工程绑定集合
        /// 
        private List gvEngineeringSystemOptionLs()
        {
            List massQuestionLs = new List();
            JArray mergedData = gvEngineeringOption.GetMergedData();
            foreach (JObject mergedRow in mergedData)
            {
                string status = mergedRow.Value("status");
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                massQuestionLs.Add(new Running_LogManagementDto
                {
                    RunningId = this.gvEngineeringOption.Rows[i].DataKeys[0].ToString(),
                    ProjectId = this.CurrUser.LoginProjectId,
                    InstallationId = this.gvEngineeringOption.Rows[i].DataKeys[1].ToString(),
                    ProcessesId = this.gvEngineeringOption.Rows[i].DataKeys[2].ToString(),
                    SystemId = this.gvEngineeringOption.Rows[i].DataKeys[3].ToString(),
                    SystemName = this.gvEngineeringOption.Rows[i].DataKeys[4].ToString(),
                    Situation = values.Value("Situation"),
                    Remarks = values.Value("Remarks"),
                    AddUser = CurrUser.UserId,
                    AddTime = DateTime.Now,
                    Sort = i + 1
                });
            }
            return massQuestionLs;
        }
        /// 
        /// 工艺装置日志管理绑定
        /// 
        public void DriveDataBrid(List list = null)
        {
            var deviceModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && x.PreRunName.Trim() == "工艺装置");
            if (deviceModel == null)
            {
                list = new List();
                gvDeviceOption.DataSource = list;
                gvDeviceOption.DataBind();
                return;
            }
            if (list == null)
            {
                list = new List();
                var query = from a in Funs.DB.Running_LogManagement
                            join b in Funs.DB.PreRun_SysDevice on a.SystemId equals b.PreRunId
                            where a.MainId == this.MainId && a.InstallationId == deviceModel.PreRunId
                            orderby a.Sort ascending
                            select new Running_LogManagementDto
                            {
                                RunningId = a.RunningId,
                                ProjectId = a.ProjectId,
                                InstallationId = a.InstallationId,
                                ProcessesId = a.ProcessesId,
                                SystemId = a.SystemId,
                                SystemName = b.PreRunName,
                                JobNo = a.JobNo,
                                ShiftType = a.ShiftType,
                                ShiftUser = a.ShiftUser,
                                SuccessionUser = a.SuccessionUser,
                                StartData = a.StartData,
                                EndData = a.EndData,
                                Situation = a.Situation,
                                Remarks = a.Remarks,
                                HandoverCare = a.HandoverCare,
                                AddUser = a.AddUser,
                                AddTime = a.AddTime,
                                Sort = a.Sort
                            };
                var data = query.ToList();
                if (data.Count > 0) list.AddRange(data);
            }
            gvDeviceOption.DataSource = list;
            gvDeviceOption.DataBind();
        }
        /// 
        /// 获取工艺装置绑定集合
        /// 
        private List gvDeviceSystemOptionLs()
        {
            List massQuestionLs = new List();
            JArray mergedData = gvDeviceOption.GetMergedData();
            foreach (JObject mergedRow in mergedData)
            {
                string status = mergedRow.Value("status");
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                massQuestionLs.Add(new Running_LogManagementDto
                {
                    RunningId = this.gvDeviceOption.Rows[i].DataKeys[0].ToString(),
                    ProjectId = this.CurrUser.LoginProjectId,
                    InstallationId = this.gvDeviceOption.Rows[i].DataKeys[1].ToString(),
                    ProcessesId = this.gvDeviceOption.Rows[i].DataKeys[2].ToString(),
                    SystemId = this.gvDeviceOption.Rows[i].DataKeys[3].ToString(),
                    SystemName = this.gvDeviceOption.Rows[i].DataKeys[4].ToString(),
                    Situation = values.Value("Situation"),
                    Remarks = values.Value("Remarks"),
                    AddUser = CurrUser.UserId,
                    AddTime = DateTime.Now,
                    Sort = i + 1
                });
            }
            return massQuestionLs;
        }
        public class Running_LogManagementDto : Running_LogManagement
        {
            public string SystemName { get; set; }
        }
        #region 操作问题
        /// 
        /// 操作问题绑定
        /// 
        public void gvOperationBrid()
        {
            var query = from a in Funs.DB.Running_Operation join b in Funs.DB.Running_LogMain on a.MainId equals b.MainId select a;
            var list = query.ToList();
            gvOperation.DataSource = list;
            gvOperation.DataBind();
        }
        /// 
        /// 操作问题集合
        /// 
        private List gvOperationLs()
        {
            List massQuestionLs = new List();
            JArray mergedData = gvOperation.GetMergedData();
            foreach (JObject mergedRow in mergedData)
            {
                string status = mergedRow.Value("status");
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                massQuestionLs.Add(new Running_Operation
                {
                    OperationId = IsStrVal(this.gvOperation.Rows[i].DataKeys[0]),
                    MainId = IsStrVal(this.gvOperation.Rows[i].DataKeys[1]),
                    ProjectId = this.CurrUser.LoginProjectId,                    
                    OperationReason = values.Value("OperationReason"),
                    OperationHandle = values.Value("OperationHandle"),
                    AddUser = CurrUser.UserId,
                    AddTime = DateTime.Now,
                    Sort = i
                });
            }
            return massQuestionLs;
        }
        /// 
        /// 维护问题删除
        /// 
        /// 
        /// 
        protected void gvOperation_RowCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                string rowID = e.RowID;
                var model = Funs.DB.Running_Operation.FirstOrDefault(p => p.OperationId == rowID);
                if (model != null)
                {
                    Funs.DB.Running_Operation.DeleteOnSubmit(model);
                    Funs.DB.SubmitChanges();
                    gvOperationBrid();
                    ShowNotify("删除成功!");
                }
                else
                {
                    var list = gvOperationLs();
                    list.RemoveAll(x => x.OperationId == rowID);
                    gvOperation.DataSource = list;
                    gvOperation.DataBind();
                    ShowNotify("删除成功!");
                }
            }
        }
        /// 
        /// 新增
        /// 
        protected void btnOperationAdd_Click(object sender, EventArgs e)
        {
            var list = gvOperationLs();
            Running_Operation model = new Running_Operation
            {
                OperationId = Guid.NewGuid().ToString()
            };
            list.Add(model);
            this.gvOperation.DataSource = list;
            this.gvOperation.DataBind();
        }
        #endregion
        #region 维护问题
        /// 
        /// 维护问题绑定
        /// 
        public void gvMaintenanceBrid()
        {
            var query = from a in Funs.DB.Running_Maintenance join b in Funs.DB.Running_LogMain on a.MainId equals b.MainId select a;
            var list = query.ToList();
            gvMaintenance.DataSource = list;
            gvMaintenance.DataBind();
        }
        /// 
        /// 维护问题集合
        /// 
        private List gvMaintenanceLs()
        {
            List massQuestionLs = new List();
            JArray mergedData = gvMaintenance.GetMergedData();
            foreach (JObject mergedRow in mergedData)
            {
                string status = mergedRow.Value("status");
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                massQuestionLs.Add(new Running_Maintenance
                {
                    MaintenanceId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[0]),
                    MainId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[1]),
                    ProjectId = this.CurrUser.LoginProjectId,
                    MaintenanceReason = values.Value("MaintenanceReason"),
                    MaintenanceHandle = values.Value("MaintenanceHandle"),
                    AddUser = CurrUser.UserId,
                    AddTime = DateTime.Now,
                    Sort = i
                });
            }
            return massQuestionLs;
        }
        /// 
        /// 维护问题删除
        /// 
        protected void gvMaintenance_RowCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                string rowID = e.RowID;
                var model = Funs.DB.Running_Maintenance.FirstOrDefault(p => p.MaintenanceId == rowID);
                if (model != null)
                {
                    Funs.DB.Running_Maintenance.DeleteOnSubmit(model);
                    Funs.DB.SubmitChanges();
                    gvMaintenanceBrid();
                    ShowNotify("删除成功!");
                }
                else
                {
                    var list = gvMaintenanceLs();
                    list.RemoveAll(x => x.MaintenanceId == rowID);
                    gvMaintenance.DataSource = list;
                    gvMaintenance.DataBind();
                    ShowNotify("删除成功!");
                }
            }
        }
        /// 
        /// 新增
        /// 
        protected void btnMaintenanceAdd_Click(object sender, EventArgs e)
        {
            var list = gvMaintenanceLs();
            Running_Maintenance model = new Running_Maintenance
            {
                MaintenanceId = Guid.NewGuid().ToString()
            };
            list.Add(model);
            this.gvMaintenance.DataSource = list;
            this.gvMaintenance.DataBind();
        }
        #endregion
        public string IsStrVal(object value)
        {
            var result = string.Empty;
            if (value != null) result = value.ToString();
            return result;
        }
    }
}