|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using ICSharpCode.Core;
|
|
|
|
|
using Mesnac.Action.Base;
|
|
|
|
|
using Mesnac.Codd.Session;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace Mesnac.Action.Default.Purview
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 把当前选中的权限保存为默认权限
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class SaveDefaultPurviewAction : DatabaseAction, IAction
|
|
|
|
|
{
|
|
|
|
|
public void Run(RuntimeParameter runtime)
|
|
|
|
|
{
|
|
|
|
|
base.RunIni(runtime);
|
|
|
|
|
ICSharpCode.Core.LoggingService<SaveDefaultPurviewAction>.Debug("把当前选中的权限保存为默认权限");
|
|
|
|
|
DbMCControl basRolePurviewControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "BasRolePermission").FirstOrDefault();
|
|
|
|
|
if (basRolePurviewControl == null || !basRolePurviewControl.BaseControl.GetType().IsSubclassOf(typeof(TreeView)))
|
|
|
|
|
{
|
|
|
|
|
ICSharpCode.Core.LoggingService<SaveDefaultPurviewAction>.Warn("保存角色权限 缺少权限树形控件...");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
TreeView tv = basRolePurviewControl.BaseControl as TreeView;
|
|
|
|
|
if (tv != null)
|
|
|
|
|
{
|
|
|
|
|
DbHelper dbhelper = NewDbHelper(basRolePurviewControl.DesignSource);
|
|
|
|
|
if (dbhelper == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
save(dbhelper, tv.Nodes);
|
|
|
|
|
string msg1 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_Default_Purview_SavePurview_msg1")); //信息保存完毕!
|
|
|
|
|
ShowMsg(msg1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void save(DbHelper dbhelper, TreeNodeCollection tnc)
|
|
|
|
|
{
|
|
|
|
|
foreach (TreeNode n in tnc)
|
|
|
|
|
{
|
|
|
|
|
if (n.Checked)
|
|
|
|
|
{
|
|
|
|
|
insert(dbhelper, n.Tag as APurview);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
delete(dbhelper, n.Tag as APurview);
|
|
|
|
|
}
|
|
|
|
|
if (n.Nodes != null)
|
|
|
|
|
{
|
|
|
|
|
save(dbhelper, n.Nodes);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insert(DbHelper dbhelper, APurview aPurview)
|
|
|
|
|
{
|
|
|
|
|
if (aPurview == null)
|
|
|
|
|
return;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
sb.AppendLine("IF NOT EXISTS(SELECT * FROM BasDefaultPermission WHERE PermissionItemGUID=@PermissionItemGUID AND PermissionType=@PermissionType)");
|
|
|
|
|
sb.AppendLine("INSERT INTO BasDefaultPermission(GUID,PermissionItemGUID,PermissionType)");
|
|
|
|
|
sb.AppendLine("VALUES(NEWID(),@PermissionItemGUID,@PermissionType)");
|
|
|
|
|
|
|
|
|
|
dbhelper.ClearParameter();
|
|
|
|
|
dbhelper.CommandType = CommandType.Text;
|
|
|
|
|
dbhelper.CommandText = sb.ToString();
|
|
|
|
|
dbhelper.AddParameter("@PermissionItemGUID", aPurview.GUID);
|
|
|
|
|
dbhelper.AddParameter("@PermissionType", aPurview.PurviewType);
|
|
|
|
|
|
|
|
|
|
dbhelper.ExecuteNonQuery();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ICSharpCode.Core.LoggingService<SaveDefaultPurviewAction>.Error("保存默认权限失败-insert:" + ex.Message, ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void delete(DbHelper dbhelper, APurview aPurview)
|
|
|
|
|
{
|
|
|
|
|
if (aPurview == null)
|
|
|
|
|
return;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
dbhelper.ClearParameter();
|
|
|
|
|
dbhelper.CommandType = CommandType.Text;
|
|
|
|
|
dbhelper.CommandText = "DELETE FROM BasDefaultPermission WHERE PermissionItemGUID=@PermissionItemGUID AND PermissionType=@PermissionType";
|
|
|
|
|
dbhelper.AddParameter("@PermissionItemGUID", aPurview.GUID);
|
|
|
|
|
dbhelper.AddParameter("@PermissionType", aPurview.PurviewType);
|
|
|
|
|
|
|
|
|
|
dbhelper.ExecuteNonQuery();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ICSharpCode.Core.LoggingService<SaveDefaultPurviewAction>.Error("保存默认权限失败-delete:" + ex.Message, ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|