using System;
using System.Linq;
using System.Windows.Forms;
using ICSharpCode.Core;
using Mesnac.Action.Base;

namespace Mesnac.Action.ChemicalWeighing.LjTanNum
{
    public class UpdateAction:ChemicalWeighingAction,IAction
    {
        public static event EventHandler OnUpdateMaterial;
        private DbMCControl _materialGridControl = null;      //物料列表控件
        private RuntimeParameter _runtime;
        public void Run(RuntimeParameter runtime)
        {
            base.RunIni(runtime); //必须调用
            this._runtime = runtime;
            
            DbMCControl  materialGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local,
                "lj_stock_material").FirstOrDefault();         //获取物料数据控件
            this._materialGridControl = materialGridControl;
            DataGridView clientGridView = this._materialGridControl.BaseControl as DataGridView;
            
            //验证是否选中某物料
            if (clientGridView.SelectedRows.Count != 1)
            {
               
                MessageBox.Show("请选择要修改的数据", Mesnac.Basic.LanguageHelper.Caption, 
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                this._runtime.IsReturn = true;
                return;
            }

            var dataGridViewRow = clientGridView.SelectedRows[0];

            TankNumCodingView actionCodeView = new TankNumCodingView()
            {
                Id = (int)dataGridViewRow.Cells["id"].Value,
                MTypeId = (int)dataGridViewRow.Cells["MTypeId"].Value,
            
            };

            FrmTankNum frmTankNum = new FrmTankNum(actionCodeView);
            DialogResult result = frmTankNum.ShowDialog();
            this._runtime.BaseControl.MCEnabled = false;
            if (result == DialogResult.OK)
            {
                if (OnUpdateMaterial != null)
                {
                    OnUpdateMaterial(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty);
                }
                
                frmTankNum.Dispose();
               
            }
            
            this._runtime.BaseControl.MCEnabled = true;
        }
    }
}