using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data; using Mesnac.Action.Base; using Mesnac.Codd.Session; namespace Mesnac.Action.Default.Purview.BasRole { /// /// 添加角色业务 /// public class InsertAction : DefaultAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须调用 ICSharpCode.Core.LoggingService.Debug("角色信息-添加..."); FrmInsert frmInsert = new FrmInsert(); DialogResult result = frmInsert.ShowDialog(); if (result == DialogResult.OK) { string guid = Guid.NewGuid().ToString().ToUpper(); int seqIndex = GetNextSeqIndex(); string roleName = frmInsert.RoleName; string strSql = @"insert into BasRole(GUID, SeqIndex, RoleName, DeleteFlag) values(@GUID, @SeqIndex, @RoleName, @DeleteFlag)"; DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); dbHelper.ClearParameter(); dbHelper.CommandType = System.Data.CommandType.Text; dbHelper.CommandText = strSql; dbHelper.AddParameter("@GUID", guid); dbHelper.AddParameter("@SeqIndex", seqIndex); dbHelper.AddParameter("@RoleName", roleName); dbHelper.AddParameter("@DeleteFlag", "0"); dbHelper.ExecuteNonQuery(); //刷新DataGridView数据 DbMCControl dgBasRole = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "BasRole").FirstOrDefault(); if (dgBasRole == null || !(dgBasRole.BaseControl is DataGridView)) { ICSharpCode.Core.LoggingService.Warn("{角色信息-添加} 缺少角色DataGridView控件..."); runtime.IsReturn = false; return; } DataTable table = dbHelper.GetDataTableBySql(dgBasRole.BaseControl.ActionDataSource); dgBasRole.BaseControl.BindDataSource = table; #region 记录操作日志 string logContent = String.Format("SeqIndex={0}, RoleName={1}", seqIndex, roleName); base.DBLog(logContent); #endregion } } /// /// 获取下一个可用的角色序号 /// /// 返回可用的用户序号 public int GetNextSeqIndex() { string strSql = "select MAX(SeqIndex) from BasRole"; DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); dbHelper.ClearParameter(); dbHelper.CommandText = strSql; dbHelper.CommandType = CommandType.Text; object result = dbHelper.ToScalar(); if (result != null && result != System.DBNull.Value) { string SeqIndex = result.ToString(); int intSeqIndex = 1; if (int.TryParse(SeqIndex, out intSeqIndex)) { intSeqIndex++; return intSeqIndex; } else { return 1; } } else { return 1; } } } }