public void OnItemCheckChanged(object sender, GridItemCheckChangedEventArgs oArgs) { IEntAssignment ENGINEentass = new IEntAssignment(HELPERS.NewOdbcConn()); int IDentitlement = int.Parse(oArgs.Item["c_id"].ToString()); string editstatusEAss = "-"; int idEntAss = -1; if (oArgs.Item["TEassEditStatus"] != null) { if (oArgs.Item["TEassEditStatus"].ToString() != "") { editstatusEAss = oArgs.Item["TEassEditStatus"].ToString(); idEntAss = int.Parse(oArgs.Item["TEassRowId"].ToString()); } } if (oArgs.Checked) { if (idEntAss >= 0) { returnGetEntAssignment curval = ENGINEentass.GetEntAssignment(idEntAss); ENGINEentass.SetEntAssignment(idEntAss, curval.EntAssignmentSetID, curval.BusRoleID, curval.EntitlementID, "A");/*ACTIVE*/ } else { // Create a EAss int baby = ENGINEentass.NewEntAssignment(session.idWorkspace, IDrole, IDentitlement, "N"); MAPentIdToBabyEAssId.Add(IDentitlement, baby); } } else { if (idEntAss < 0) { if (MAPentIdToBabyEAssId.ContainsKey(IDentitlement)) { idEntAss = MAPentIdToBabyEAssId[IDentitlement]; editstatusEAss = "N"; MAPentIdToBabyEAssId.Remove(IDentitlement); } } if (editstatusEAss == "N") { try { ENGINEentass.DeleteEntAssignment(idEntAss); } catch (Exception eee) { // Exceptions will occur here naturally, if during a session where row R was // initially unchecked, someone checked it, and then unchecked it back to its // original unchecked state, and then hits submit. ENGINEentass.DeleteEntAssignment( MAPentIdToBabyEAssId[IDentitlement]); MAPentIdToBabyEAssId.Remove(IDentitlement); } } else { returnGetEntAssignment curval = ENGINEentass.GetEntAssignment(idEntAss); ENGINEentass.SetEntAssignment(idEntAss, curval.EntAssignmentSetID, curval.BusRoleID, curval.EntitlementID, "X"); } } }
public void OnItemCheckChanged(object sender, GridItemCheckChangedEventArgs oArgs) { int IDbusrole = int.Parse(oArgs.Item["c_id"].ToString()); returnGetBusRole detailsBusRole = engineBusRole.GetBusRole(IDbusrole); MAPbroleIdToName.Add(IDbusrole, detailsBusRole.Name); MAPbroleToSubproc.Add(IDbusrole, detailsBusRole.SubProcessID); if (oArgs.Checked) { QUEUEidsBusrolesToADD.Enqueue(IDbusrole); } else { QUEUEidsBusrolesToREMOVE.Enqueue(IDbusrole); } if (MAPsubprToEASet.ContainsKey(detailsBusRole.SubProcessID)) { return; } // This role is in a subprocess we have not yet analyzed. // Must determine if in workspace or ACTIVE status. // If that subpr is in a workspace owned by someone else, // the entire operation is aborted with no change being made. returnListEntAssignmentSetBySubProcess[] ret = engineEASet.ListEntAssignmentSetBySubProcess (null, "\"Status\" = ?", new string[] { "WORKSPACE" }, "", detailsBusRole.SubProcessID); if (ret.Length > 1) { throw new Exception("More than one WORKSPACE open simultaneously for subprocess " + oArgs.Item["NamePr"].ToString()); } if (ret.Length == 1) { // A workspace is open for this subprocess. // OK if userID matches this session's user if (ret[0].UserID == session.idUser) { // It's a match, we can use this workspace. HELPERS.infoEASet EAS = new HELPERS.infoEASet(); EAS.idEntAssSet = ret[0].ID; EAS.idEntAssSetCreator = ret[0].UserID; EAS.nameEntAssSetCreator = ret[0].UserLoginName; EAS.nameSubprocess = oArgs.Item["NamePr"].ToString(); EAS.strEntAssSetStatus = "WORKSPACE"; MAPsubprToEASet.Add(detailsBusRole.SubProcessID, EAS); } else { boolMustAbort = true; messages += "ERROR: Cannot make modifications regarding role " + oArgs.Item["c_u_Name"] + ". The workspace for " + oArgs.Item["NamePr"] + " is owned by a 3rd party (" + ret[0].UserLoginName + ").\n"; } } else { // Make sure there is an ACTIVE EASet to build a workspace from. ret = engineEASet.ListEntAssignmentSetBySubProcess (null, "\"Status\" = ?", new string[] { "ACTIVE" }, "", detailsBusRole.SubProcessID); if (ret.Length > 1) { throw new Exception("More than one ACTIVE entitlement-assignment set for " + oArgs.Item["NamePr"].ToString()); } if (ret.Length < 1) { throw new Exception("Subprocess has NO active entitlement-assignment set yet: " + oArgs.Item["NamePr"].ToString()); } if (ret.Length == 1) { HELPERS.infoEASet EAS = new HELPERS.infoEASet(); EAS.idEntAssSet = ret[0].ID; EAS.idEntAssSetCreator = ret[0].UserID; EAS.nameEntAssSetCreator = ret[0].UserLoginName; EAS.nameSubprocess = oArgs.Item["NamePr"].ToString(); EAS.strEntAssSetStatus = "ACTIVE"; MAPsubprToEASet.Add(detailsBusRole.SubProcessID, EAS); } } }