Exemplo n.º 1
0
        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");
                }
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }