function stampProperties()

in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js [2208:2373]


            function stampProperties() {
                //  alert();
                var matterGUID = cm.matterGUID;
                cm.successBanner = true;
                cm.successMsg = cm.createContent.LabelEntityCreationSuccessMsgText3;
                jQuery.a11yfy.assertiveAnnounce(cm.createContent.LabelEntityCreationSuccessMsgText3);
                var sCheckByUserEmail = (undefined !== cm.selectedConflictCheckUser && null !== cm.selectedConflictCheckUser) ? getUserName(cm.selectedConflictCheckUser.trim() + ";", false) : "";
                var sCheckBy = getUserEmail(sCheckByUserEmail);
                var sBlockUserEmail = (undefined !== cm.blockedUserName && null !== cm.blockedUserName) ? getUserName(cm.blockedUserName.trim() + ";", false) : [];
                var sBlockUserName = sBlockUserEmail;
                var arrPermissions = [];
                arrPermissions = getAssignedUserPermissions();
                var arrRoles = [];
                arrRoles = getAssignedUserRoles();
                var contentTypes = [];
                var defaultContentType = "";
                contentTypes = getDefaultContentTypeValues("contenttypes");
                defaultContentType = getDefaultContentTypeValues("defaultcontenttype");
                var arrUserNames = [], arrUserEmails = [], arrTeamMembers = [];
                var oMatterProvisionFlags = {};
                var sLevel1List = "", sLevel2List = "", sLevel3List = "", sLevel4List = "", sLevel5List = "";

                var sResponsibleAttorney = [], sResponsibleAttorneyEmail = [], arrTeamMembers = [], arrDocumentTemplatesCount = [];
                var oDocumentTemplates = cm.selectedDocumentTypeLawTerms;
                var subAreaofLaw = "", roleInformation = {}, arrReadOnlyUsers = [];

                var User_Upload_Permissions = "Read";
                angular.forEach(cm.assignPermissionTeams, function (item) {
                    if (item.assignedPermission.name.toLowerCase() === User_Upload_Permissions.toLowerCase()) {
                        arrReadOnlyUsers.push(getUserName(item.assignedUser.trim() , false).join(";"));
                    }
                });
                arrReadOnlyUsers = cleanArray(arrReadOnlyUsers);

                validateTeamAssigmentRole();
                angular.forEach(cm.assignPermissionTeams, function (item) {
                    if (1 <= cm.assignPermissionTeams.length) {
                        if ("" !== item.assignedRole && "" !== item.assignedPermission) {
                            if (-1 !== cm.oMandatoryRoleNames.indexOf(item.assignedRole.name)) {
                                sResponsibleAttorney.push(getUserName(item.assignedUser + ";", true).join(";"));
                                sResponsibleAttorneyEmail.push(getUserName(item.assignedUser + ";", false).join(";"));
                            }
                        }
                    }
                });

                angular.forEach(cm.assignPermissionTeams, function (item) {
                    if ("" !== item.assignedRole && "" !== item.assignedPermission) {
                        if (roleInformation.hasOwnProperty(item.assignedRole.name)) {
                            // This role is already present. append the new role with semicolon separated value                           
                            roleInformation[item.assignedRole.name] = roleInformation[item.assignedRole.name] + ";" + item.assignedUser;
                        } else {
                            // Add this role to the object
                            roleInformation[item.assignedRole.name] = item.assignedUser;
                        }
                    }
                });
                angular.forEach(cm.assignPermissionTeams, function (item) {
                    arrUserNames.push(getUserName(item.assignedUser.trim() + ";", true));
                    arrUserEmails.push(getUserName(item.assignedUser.trim() + ";", false));
                    arrTeamMembers.push(getUserName(item.assignedUser.trim() + ";", true).join(";"));
                });
                angular.forEach(oDocumentTemplates, function (item) {
                    arrDocumentTemplatesCount.push(item.documentTemplateNames.split(";").length.toString());
                });
                arrDocumentTemplatesCount.reverse();

                oMatterProvisionFlags = {
                    "MatterLandingFlag": cm.bMatterLandingPage,
                    "SendEmailFlag": cm.includeEmail
                };

                angular.forEach(oDocumentTemplates, function (item) {
                    if (item.primaryMatterType) {
                        defaultContentType = item.termName;
                    }
                    if (cm.taxonomyHierarchyLevels >= 2) {
                        if (-1 === sLevel1List.indexOf(item.levelOneTermName)) {
                            sLevel1List = item.levelOneTermName + "; " + sLevel1List;
                        }
                        if (-1 === sLevel2List.indexOf(item.levelTwoTermName)) {
                            sLevel2List = item.levelTwoTermName + "; " + sLevel2List;
                        }
                    }
                    if (cm.taxonomyHierarchyLevels >= 3) {
                        if (-1 === sLevel3List.indexOf(item.levelThreeTermName)) {
                            sLevel3List = item.levelThreeTermName + "; " + sLevel3List;
                        }
                    }
                    if (cm.taxonomyHierarchyLevels >= 4) {
                        if (-1 === sLevel4List.indexOf(item.levelFourTermName)) {
                            sLevel4List = item.levelFourTermName + "; " + sLevel4List;
                        }
                    }
                    if (cm.taxonomyHierarchyLevels >= 5) {
                        if (-1 === sLevel5List.indexOf(item.levelFiveTermName)) {
                            sLevel5List = item.levelFiveTermName + "; " + sLevel5List;
                        }
                    }
                });

                var managedColumns = {}
                for (var i = 0; i < cm.taxonomyHierarchyLevels; i++) {
                    var columnName = configs.contentTypes.managedColumns["ColumnName" + (i + 1)];
                    managedColumns[columnName] = { TermName: "", Id: "" };
                    if (i === 0) { managedColumns[columnName].TermName = sLevel1List; }
                    if (i === 1) { managedColumns[columnName].TermName = sLevel2List; }
                    if (i === 2) { managedColumns[columnName].TermName = sLevel3List; }
                    if (i === 3) { managedColumns[columnName].TermName = sLevel4List; }
                    if (i === 4) { managedColumns[columnName].TermName = sLevel5List; }
                }

                var optionsForStampMatterDetails = {
                    Client: {
                        Id: cm.clientId,
                        Name: cm.selectedClientName,
                        Url: cm.clientUrl
                    },
                    Matter: {
                        Name: cm.matterName.trim(),
                        Id: cm.matterId.trim(),
                        Description: cm.matterDescription,
                        Conflict: {
                            Identified: cm.conflictRadioCheck,
                            CheckBy: sCheckBy,
                            CheckOn: cm.conflictDate,
                            SecureMatter: cm.secureMatterCheck
                        },
                        BlockUserNames: sBlockUserName,
                        AssignUserNames: cm.arrAssignedUserName,
                        AssignUserEmails: cm.arrAssignedUserEmails,
                        ContentTypes: contentTypes,
                        DefaultContentType: defaultContentType,
                        Permissions: arrPermissions,
                        Roles: arrRoles,
                        DocumentTemplateCount: arrDocumentTemplatesCount,
                        MatterGuid: matterGUID
                    },
                    MatterDetails: {
                        ResponsibleAttorney: sResponsibleAttorney.join(";").replace(/;;/g, ";"),
                        ResponsibleAttorneyEmail: sResponsibleAttorneyEmail.join(";").replace(/;;/g, ";"),
                        UploadBlockedUsers: arrReadOnlyUsers,
                        TeamMembers: arrTeamMembers.join(";"),
                        RoleInformation: JSON.stringify(roleInformation),
                        ManagedColumnTerms: managedColumns

                    },
                    MatterProvisionFlags: oMatterProvisionFlags,
                    MatterConfigurations: {
                        IsConflictCheck: cm.chkConfilctCheck,
                        IsMatterDescriptionMandatory: cm.isMatterDescriptionMandatory
                    }
                }
                console.log("options for optionsForStampMatterDetails matter");
                console.log(optionsForStampMatterDetails);
                updateMatterMetadataAPI(optionsForStampMatterDetails, function (response) {

                    console.log("stampProperties Success");
                    console.log(response);
                    cm.successMsg = cm.createContent.LabelSuccessEntityCreation + " <a target='_blank' href='" + cm.clientUrl + "/SitePages/" + cm.matterGUID + ".aspx'>here</a>.";
                    clearAllProperties();
                    jQuery.a11yfy.assertiveAnnounce(cm.createContent.LabelSuccessEntityCreation);
                    cm.navigateToSecondSection(cm.sectionName);
                    cm.popupContainerBackground = "Show";
                });
            }