/// <summary> /// 删除流程参与人 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnDelete_Click(object sender, EventArgs e) { try { long?id = (sender as LinkButton).CommandArgument.ToLongNullable(); using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope()) { using (BizDataContext db = new BizDataContext()) { SysProcessParticipant p = db.FindById <SysProcessParticipant>(id); if (p != null) { //同步删除关联的活动参与人 var apList = db.Where <SysActivityParticipant>(x => x.ParticipantId == id); foreach (var ap in apList) { db.Delete(ap); } db.Delete(p); } } ts.Complete(); } BindGrid(); } catch (Exception ex) { this.AjaxAlert(ex); } }
/// <summary> /// 删除 /// </summary> /// <param name="selectedId"></param> private void Delete(long selectedId) { var section = this.DataHelper.FindById <SysFormFieldSection>(selectedId); if (section != null) { var fieldList = this.DataHelper.Where <SysFormField>(p => p.FormSectionId == selectedId); using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope()) { using (BizDataContext db = new BizDataContext()) { foreach (var field in fieldList) { db.Delete(field); } db.Delete(section); } ts.Complete(); } } else { var field = this.DataHelper.FindById <SysFormField>(selectedId); if (field != null) { this.DataHelper.Delete(field); } } }
/// <summary> /// 删除流程,只有“新增”状态的可以删除 /// </summary> public void DeleteProcess() { using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope()) { using (BizDataContext db = new BizDataContext()) { if (_process != null && _process.ProcessStatus == (int)ProcessState.Created) { //删除流程 db.Delete(_process); //删除活动 db.Where <SysActivity>(p => p.ProcessId == _process.ProcessId).ToList().ForEach(p => { //删除活动 db.Delete(p); //删除活动参与人 db.Where <SysActivityParticipant>(i => i.ActivityId == p.ActivityId).ToList().ForEach(i => db.Delete(i)); }); //删除流程参与人 db.Where <SysProcessParticipant>(p => p.ProcessId == _process.ProcessId).ToList().ForEach(p => db.Delete(p)); //删除连接线 db.Where <SysTransition>(p => p.ProcessId == _process.ProcessId).ToList().ForEach(p => db.Delete(p)); } else { throw new Exception("流程不存在或当前流程状态不能删除"); } } ts.Complete(); } }
/// <summary> /// 删除 /// </summary> /// <param name="serser"></param> /// <param name="e"></param> protected void lbtnDel_Click(object sender, EventArgs e) { using (BizDataContext context = new BizDataContext()) { int id = int.Parse((sender as LinkButton).CommandArgument); SysProcessProxy ProcessProxyData = context.FirstOrDefault <SysProcessProxy>(p => p.ProcessProxyId == id); context.Delete(ProcessProxyData); } Response.Redirect(Request.Url.ToString()); }
public bool DeleteRoleFunction(int roleId) { try { using (BizDataContext context = new BizDataContext(true)) { List <T_Role_Function> list = context.Where <T_Role_Function>(r => r.Role_ID == roleId); if ((list != null) && (list.Count > 0)) { foreach (T_Role_Function function in list) { context.Delete(function); } } } return(true); } catch (Exception exception) { AppLogHelper.Error(exception); return(false); } }
protected void btnSave_Click(object sender, EventArgs e) { try { long?entityId = this.scEntity.SelectedValues.FirstOrDefault().ToLongNullable(); if (entityId == null) { throw new Exception("请选择实体"); } List <int> roleIdList = this.scRole.SelectedValues.Select(p => p.ToIntNullable()).Where(p => p != null).Select(p => p.Value).ToList(); if (roleIdList.Count == 0) { throw new Exception("请选择角色"); } List <int> opList = this.scOperation.SelectedValues.Select(p => p.ToIntNullable()).Where(p => p != null).Select(p => p.Value).ToList(); if (opList.Count == 0) { throw new Exception("请选择操作"); } int?privilege = this.ccPrivilege.SelectedValue.ToIntNullable(); if (privilege == null) { throw new Exception("请选择权限"); } using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope()) { using (BizDataContext db = new BizDataContext()) { var delList = db.Where <SysDataPrivilege>(p => p.EntityId == entityId.Value) .Where(p => roleIdList.Contains(p.RoleId)).ToList(); foreach (var del in delList) { db.Delete(del); } var insertList = new List <SysDataPrivilege>(); foreach (var roleId in roleIdList) { foreach (var op in opList) { SysDataPrivilege data = new SysDataPrivilege() { RoleId = roleId, EntityId = entityId.Value, OperationId = op, PrivelegeLevel = privilege.Value, }; insertList.Add(data); } } db.BatchInsert(insertList); } ts.Complete(); } Clear(); this.AjaxAlert("保存成功"); } catch (Exception ex) { this.AjaxAlert(ex); } }
/// <summary> /// 清除流程 /// </summary> /// <param name="processId"></param> public string Delete(long processId) { try { using (BizDataContext context = new BizDataContext()) { SendToClient("正在删除旧流程定义...", 10); SysProcess process = context.FindById <SysProcess>(processId); if (process != null) { //禁用外键 DisableConstraint(); //删除流程 context.Delete(process); //删除活动 context.Where <SysActivity>(p => p.ProcessId == processId).ToList().ForEach(p => { //删除活动 context.Delete(p); //删除活动操作 context.Where <SysActivityOperation>(i => i.ActivityId == p.ActivityId).ToList().ForEach(i => { //删除活动操作 context.Delete(i); //删除活动操作步骤 context.Where <SysActivityStep>(q => q.OperationId == i.OperationId).ToList().ForEach(q => context.Delete(q)); }); //删除活动提醒 context.Where <SysActivityRemind>(i => i.ActivityId == p.ActivityId).ToList().ForEach(i => { //删除活动提醒 context.Delete(i); //删除活动提醒参与人 context.Where <SysActivityRemindParticipant>(q => q.RemindId == i.RemindId).ToList().ForEach(q => context.Delete(q)); }); //删除活动参与人 context.Where <SysActivityParticipant>(i => i.ActivityId == p.ActivityId).ToList().ForEach(i => context.Delete(i)); //删除表达式 context.Where <SysExpression>(i => i.ActivityId == p.ActivityId).ToList().ForEach(i => context.Delete(i)); }); //删除流程参与人 context.Where <SysProcessParticipant>(p => p.ProcessId == processId).ToList().ForEach(p => context.Delete(p)); //删除流程提醒 context.Where <SysProcessRemind>(p => p.ProcessId == processId).ToList().ForEach(p => { //删除流程提醒 context.Delete(p); //删除流程提醒参与人 context.Where <SysProcessRemindParticipant>(q => q.RemindId == p.RemindId).ToList().ForEach(q => context.Delete(q)); }); //删除连接线 context.Where <SysTransition>(p => p.ProcessId == processId).ToList().ForEach(p => context.Delete(p)); //启用外键 EnableConstraint(); return(null); } return(null); } } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// 删除活动 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnDelete_Click(object sender, EventArgs e) { try { //所有活动 Dictionary <long, SysActivity> activityDict = this.DataHelper.Set <SysActivity>() .Where(p => p.ProcessId == this.ProcessId).ToDictionary(p => p.ActivityId); if (activityDict.Count == 4) { throw new Exception("只有一个审核活动,不能删除"); } //当前活动 SysActivity a = activityDict[this.SelectedActivityId]; //当前活动参与人 List <SysActivityParticipant> apList = this.DataHelper.Set <SysActivityParticipant>() .Where(p => p.ActivityId == this.SelectedActivityId).ToList(); //此活动之后的审核活动 List <SysActivity> nextActivityList = activityDict.Values.Where(p => (p.DisplayOrder ?? 0) > a.DisplayOrder).ToList(); //最后一个审核活动 SysActivity lastActivity = activityDict.Values.OrderByDescending(p => p.DisplayOrder ?? 0).FirstOrDefault(); //结束活动(驳回) SysActivity endReject = activityDict.Values.FirstOrDefault(p => p.ActivityType == (int)ActivityType.End && p.ActivityName == "驳回"); //通过指向当前活动的连接线 SysTransition tIn_Pass = this.DataHelper.Set <SysTransition>() .Where(p => p.PostActivityId == this.SelectedActivityId && p.Direction == (int)FlowStepDirection.True).FirstOrDefault(); //驳回指向当前活动的连接线(集合) List <SysTransition> tIn_RejectList = this.DataHelper.Set <SysTransition>() .Where(p => p.PostActivityId == this.SelectedActivityId && p.Direction == (int)FlowStepDirection.False).ToList(); //从当前活动通过指向的连接线 SysTransition tOut_Pass = this.DataHelper.Set <SysTransition>() .Where(p => p.PreActivityId == this.SelectedActivityId && p.Direction == (int)FlowStepDirection.True).FirstOrDefault(); //从当前活动驳回指向的连接线 SysTransition tOut_Reject = this.DataHelper.Set <SysTransition>() .Where(p => p.PreActivityId == this.SelectedActivityId && p.Direction == (int)FlowStepDirection.False).FirstOrDefault(); using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope()) { using (BizDataContext db = new BizDataContext()) { //让上一个活动通过指向当前活动通过指向的活动 tIn_Pass.PostActivityId = tOut_Pass.PostActivityId; db.UpdatePartial(tIn_Pass, p => new { p.PostActivityId }); //让其它驳回指向当前活动的活动驳回指向结束活动(驳回) foreach (var tIn_Reject in tIn_RejectList) { tIn_Reject.PostActivityId = endReject.ActivityId; db.UpdatePartial(tIn_Reject, p => new { p.PostActivityId }); } //删除当前活动及连接线 db.Delete(a); db.Delete(tOut_Pass); if (tOut_Reject != null) { db.Delete(tOut_Reject); } //删除当前活动参与人 foreach (var ap in apList) { db.Delete(ap); } //将后面的活动的顺序提前1位 foreach (var na in nextActivityList) { na.DisplayOrder--; na.TopPos -= 130; db.UpdatePartial(na, p => new { p.DisplayOrder, p.TopPos }); } } ts.Complete(); } //选择最后一个活动 SelectActivity(lastActivity); this.EnableButton(); } catch (Exception ex) { this.AjaxAlertAndEnableButton(ex); } }
/// <summary> /// 保存当前活动配置 /// </summary> protected void btnSave_Click(object sender, EventArgs e) { try { //所有活动 Dictionary <long, SysActivity> activityDict = this.DataHelper.Set <SysActivity>() .Where(p => p.ProcessId == this.ProcessId).ToDictionary(p => p.ActivityId); //当前活动 SysActivity a = activityDict[this.SelectedActivityId]; using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope()) { using (BizDataContext db = new BizDataContext()) { a.ActivityName = this.txtActivityName.Text.Trim(); db.UpdatePartial(a, p => new { p.ActivityName }); #region 处理驳回方式 //找到当前活动驳回指向的连接线 SysTransition t = this.DataHelper.Set <SysTransition>() .Where(p => p.PreActivityId == this.SelectedActivityId && p.Direction == (int)FlowStepDirection.False).FirstOrDefault(); FormProcessActivityRejectType rejectType = (FormProcessActivityRejectType)this.ccRejectType.SelectedValue.ToInt(); switch (rejectType) { case FormProcessActivityRejectType.SelectActivityWhenRunning: { if (t != null) { db.Delete(t); } break; } case FormProcessActivityRejectType.SelectActivity: { SysActivity target = activityDict[this.ccRejectTargetActivity.SelectedValue.ToLong()]; if (t == null) { ConnectActivity(db, a, target, FlowStepDirection.False); } else if (t.PostActivityId != target.ActivityId) { t.PostActivityId = target.ActivityId; db.UpdatePartial(t, p => new { p.PostActivityId }); } break; } case FormProcessActivityRejectType.EndActivity: { SysActivity end = activityDict.Values.FirstOrDefault(p => p.ActivityType == (int)ActivityType.End && p.ActivityName == "驳回"); if (t == null) { ConnectActivity(db, a, end, FlowStepDirection.False); } else if (t.PostActivityId != end.ActivityId) { t.PostActivityId = end.ActivityId; db.UpdatePartial(t, p => new { p.PostActivityId }); } break; } default: break; } #endregion } ts.Complete(); } //重新选择一下 SelectActivity(a); this.AjaxAlertAndEnableButton("保存成功"); } catch (Exception ex) { this.AjaxAlertAndEnableButton(ex); } }
protected void btnSaveAA_Click(object sender, EventArgs e) { var dataList = RoleOfEntityControl1.GetReptBindItem(); try { if (string.IsNullOrEmpty(this.ddlCategory.SelectedValue)) { return; } long CategoryId = Convert.ToInt64(this.ddlCategory.SelectedValue); string msg = string.Empty; //先清除该角色权限,然后添加当前设定的权限 using (BizDataContext Context = new BizDataContext()) { //var moduleList = Context.Where<SysModule>(p => p.CategoryId == CategoryId).Select(p => p.ModuleId).ToList(); var moduleList = this.EntityCache.SysModule.Where(p => p.CategoryId == CategoryId).Select(p => p.ModuleId).ToList(); //var entityList = Context.Where<SysEntity>(p => p.ModuleId != null) var entityList = this.EntityCache.SysEntity.Where(p => p.ModuleId != null) .Where(p => moduleList.Contains(p.ModuleId.Value)) .Select(p => p.EntityId); var delList = Context.Where <SysDataPrivilege>(x => x.RoleId == this.RoleId) .Where(x => entityList.Contains(x.EntityId)).ToList(); //delList.Clear(); foreach (var del in delList) { Context.Delete(del); } foreach (var add in dataList) { Context.Insert(new SysDataPrivilege() { EntityId = add.EntityId, OperationId = (int)EntityOperationEnum.Add, RoleId = this.RoleId, PrivelegeLevel = add.addRight }); Context.Insert(new SysDataPrivilege() { EntityId = add.EntityId, OperationId = (int)EntityOperationEnum.Delete, RoleId = this.RoleId, PrivelegeLevel = add.delRight }); Context.Insert(new SysDataPrivilege() { EntityId = add.EntityId, OperationId = (int)EntityOperationEnum.Update, RoleId = this.RoleId, PrivelegeLevel = add.updtRight }); Context.Insert(new SysDataPrivilege() { EntityId = add.EntityId, OperationId = (int)EntityOperationEnum.Query, RoleId = this.RoleId, PrivelegeLevel = add.queryRight }); } //1.无权限,2.个人,3.部门,4.部门及子部门,5.全部权限 //循环遍历所有实体表(即父实体) foreach (var reptBindItem in dataList) { //获取当前父实体的一对多关系 var sysOneMoreRelations = // Context.Where<SysOneMoreRelation>( this.EntityCache.SysOneMoreRelation.Where( p => p.ParentEntityId == reptBindItem.EntityId && p.IsParentChild == true); //循环所有一对多关系 foreach (var sysOneMoreRelation in sysOneMoreRelations) { //sysOneMoreRelation.ChildEntity = Context.FindById<SysEntity>(sysOneMoreRelation.ChildEntityId); //获取父实体的子实体的所有权限 var delChild = Context.Where <SysDataPrivilege>( x => x.RoleId == this.RoleId && sysOneMoreRelation.ChildEntityId == x.EntityId).ToList(); //删除子实体的所有权限 foreach (var sysDataPrivilege in delChild) { Context.Delete(sysDataPrivilege); } msg += string.Format("{0}为{1}的子实体,权限随{1}的权限而改变!\\n", sysOneMoreRelation.ChildEntity.DisplayText, reptBindItem.DisplayText); //判断子实体的授权方式 //1.个人类,在此情况下子实体无需担心父实体的授权方式,子实体所包含的权限(即上面5种)>=父实体所包含权限 //2.组织类(只含有无权限和全部权限),在此情况下需判断父实体所选择的权限(即上面5种之一),如果父实体选择无权限,子实体即无权限,否则子实体为全部权限 if (sysOneMoreRelation.ChildEntity.PrivilegeMode == (int)PrivilegeModel.Persional)//子实体为个人类 { //子实体的Add权限跟随父实体的Update权限,其余权限与父实体一一对应 Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Add, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.updtRight }); Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Delete, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.delRight }); Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Update, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.updtRight }); Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Query, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.queryRight }); } else//子实体为组织类 { if (reptBindItem.delRight == 1)//父实体对于删除选择无权限 { Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Delete, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.delRight }); } else { Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Delete, RoleId = this.RoleId, PrivelegeLevel = 5 }); } if (reptBindItem.updtRight == 1)//父实体对于更新选择无权限,子实体Add权限跟随父实体update权限 { Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Update, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.updtRight }); Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Add, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.updtRight }); } else { Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Update, RoleId = this.RoleId, PrivelegeLevel = 5 }); Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Add, RoleId = this.RoleId, PrivelegeLevel = 5 }); } if (reptBindItem.queryRight == 1)//父实体对于查询选择无权限 { Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Query, RoleId = this.RoleId, PrivelegeLevel = reptBindItem.queryRight }); } else { Context.Insert(new SysDataPrivilege() { EntityId = sysOneMoreRelation.ChildEntityId.Value, OperationId = (int)EntityOperationEnum.Query, RoleId = this.RoleId, PrivelegeLevel = 5 }); } } } } } IOperationManager dom = new DefaultOperationManager(this.DataHelper, this.LoginUser); int count = dom.ValidateSharedPrivilege(); if (count > 0) { msg = string.Format("{0},修改导致{1}条权限共享规则被移除", msg, count); } //清除菜单的缓存,2011-10-8 zhu min Session["T_Function"] = null; this.AjaxAlert("保存成功!\\n" + msg, "window.location.reload()"); } catch (Exception ex) { this.AjaxAlert(ex); } }