public static Int32 SaveWithReporting(string CURRENT_USER, Int32 CURRENT_REGISTRY_ID, STD_REGISTRY objSave)
        {
            Int32          objReturn = 0;
            STD_REGISTRYDB objDB     = new STD_REGISTRYDB();

            objReturn = objDB.Save(CURRENT_USER, CURRENT_REGISTRY_ID, objSave);

            if (objReturn > 0)
            {
                string itemPath = ReportManager.CreateRegistryFolder(CURRENT_USER, objReturn);

                if (!string.IsNullOrEmpty(itemPath))
                {
                    ReportManager.CreateDataSet(CURRENT_USER, objReturn);

                    List <USERS> adminUsers = USERSManager.GetSystemUsers(CURRENT_USER, CURRENT_REGISTRY_ID);
                    if (adminUsers != null)
                    {
                        foreach (USERS user in adminUsers)
                        {
                            bool blnFound = false;

                            if (user.USER_ROLES != null)
                            {
                                foreach (USER_ROLES userRole in user.USER_ROLES)
                                {
                                    if (userRole.STD_ROLE != null)
                                    {
                                        switch (userRole.STD_ROLE.CODE)
                                        {
                                        case "CRSADMIN":
                                            ReportManager.AddItemAdmin(CURRENT_USER, CURRENT_REGISTRY_ID, user.USERNAME, itemPath);
                                            blnFound = true;
                                            break;

                                        case "CRSUPD":
                                            ReportManager.AddItemUpdate(CURRENT_USER, CURRENT_REGISTRY_ID, user.USERNAME, itemPath);
                                            blnFound = true;
                                            break;

                                        case "CRSREAD":
                                            ReportManager.AddItemReadOnly(CURRENT_USER, CURRENT_REGISTRY_ID, user.USERNAME, itemPath);
                                            blnFound = true;
                                            break;

                                        default:
                                            break;
                                        }
                                    }

                                    if (blnFound)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }

                ReportManager.CreateDataSet(CURRENT_USER, objReturn);
            }

            return(objReturn);
        }