private void matchThePersona() { String currentUser = EncompassApplication.Session.UserID; Excel.Application userApp = new Excel.Application(); Excel.Workbook userWorkbook = userApp.Workbooks.Open(@"\\ftwfs02\Groups\POS\Encompass Support\New User Plugin\UserTest16.xlsx"); Excel._Worksheet userWorksheet = userWorkbook.Sheets[1]; Excel.Range userRange = userWorksheet.UsedRange; int rCnt = 1; int cCnt = 1; int rowCount = userRange.Rows.Count; int colCount = userRange.Columns.Count; string newFirst; string newLast; string userID; string stopGO = "2"; string eMail; string taskNo; string mgrID; string procTitle; string pWord = "P@ssword1"; for (rCnt = 2; rCnt <= rowCount; rCnt++) { PersName = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; userID = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; newFirst = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; newLast = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; eMail = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; taskNo = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; mgrID = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt++; procTitle = (string)(userWorksheet.Cells[rCnt, cCnt].Value2); cCnt = 1; if (userID.Length >= 17) { MessageBox.Show("User " + userID + " length is longer than 16 characters. The program will stop and all Users after this user will not be created. Please adjust."); } List <PersonaPull> pSelect = CDO.PersonaPull.ToList(); List <string> persColl = new List <string>(); List <string> mngrGroup = new List <string>(); UserGroupList userGroups = new UserGroupList(); List <string> userGroup = new List <string>(); UserGroupList mngrGroups = new UserGroupList(); PersonaList listPers = new PersonaList(); foreach (PersonaPull item in pSelect) { if (PersName != "") { if (item.PersName == PersName) { OrgFolder = item.OrgFolder; Access = item.Access; userGroup = item.Group.ToList(); persColl = item.PersonaName.ToList(); foreach (string perColl in persColl) { listPers.Add(EncompassApplication.Session.Users.Personas.GetPersonaByName(perColl)); } } } } OrganizationList orgs = EncompassApplication.Session.Organizations.GetAllOrganizations(); foreach (Organization org in orgs) { UserList orgUsers = org.GetUsers(); foreach (User useID in orgUsers) { if (useID.ID.ToString() == userID.ToLower()) { EncompassApplication.CurrentLoan.Fields["CX.ADMIN.CREATE.USERS.DUP"].Value = EncompassApplication.CurrentLoan.Fields["CX.ADMIN.CREATE.USERS.DUP"].Value + "\n" + userID + "\n"; goto stop; } } if (OrgFolder == "Processing Teams" ^ OrgFolder == "Closing Teams" ^ OrgFolder == "Underwriting Teams") { OrganizationList procOrgs = EncompassApplication.Session.Organizations.GetAllOrganizations(); foreach (Organization procOrg in procOrgs) { if (mgrID != "DavidJobes" ^ mgrID != "MichaelTrainor") { if (mgrID.ToLower() == procOrg.Description) { OrgFolder = procOrg.ToString(); } } if (mgrID == "MichaelTrainor" && OrgFolder == "Processing Teams") { if (procTitle == "Digital Risk") { OrgFolder = "Digital Risk Processors"; } else if (procTitle == "Maxwell") { OrgFolder = "Maxwell Processors"; } else if (procTitle == "Accenture") { OrgFolder = "Accenture Processors"; } else { OrgFolder = "Digital Risk Processors"; } } else if (mgrID == "DavidJobes" && OrgFolder == "Processing Teams") { OrgFolder = "CD Operations"; } else if (mgrID == "MichaelTrainor" && OrgFolder == "Closing Teams") { OrgFolder = "Sourcepoint Closers"; } } } } OrganizationList userOrgs = EncompassApplication.Session.Organizations.GetOrganizationsByName(OrgFolder); foreach (Organization userOrg in userOrgs) { User newUser = userOrg.CreateUser(userID, pWord, listPers); newUser.FirstName = newFirst; newUser.LastName = newLast; newUser.Email = eMail; newUser.WorkingFolder = "My Pipeline"; SubordinateLoanAccessRight readWrite = SubordinateLoanAccessRight.ReadWrite; SubordinateLoanAccessRight readOnly = SubordinateLoanAccessRight.ReadOnly; PeerLoanAccessRight readWritep = PeerLoanAccessRight.ReadWrite; PeerLoanAccessRight readNo = PeerLoanAccessRight.None; if (Access == "Full") { newUser.SubordinateLoanAccessRight = readWrite; newUser.PeerLoanAccessRight = readWritep; } else { newUser.SubordinateLoanAccessRight = readOnly; newUser.PeerLoanAccessRight = readNo; } CCSiteInfo ccSite = new CCSiteInfo(); ccSite.UseParentInfo = false; ccSite.UseParentInfo = true; //newUser.Refresh(); newUser.Commit(); listPers.Clear(); foreach (string uGroup in userGroup) { userGroups.Add(EncompassApplication.Session.Users.Groups.GetGroupByName(uGroup)); } foreach (UserGroup addUser in userGroups) { User idGet = EncompassApplication.Session.Users.GetUser(userID); addUser.AddUser(idGet); } string glass = "TPO Wholesale Manager - Glass"; string cullen = "TPO Wholesale Manager - Cullen"; string murphy = "TPO Wholesale Manager - Murphy"; mngrGroup.Add(glass); mngrGroup.Add(cullen); mngrGroup.Add(murphy); foreach (string mGroup in mngrGroup) { mngrGroups.Add(EncompassApplication.Session.Users.Groups.GetGroupByName(mGroup)); } foreach (UserGroup addMngr in mngrGroups) { User idMngr = EncompassApplication.Session.Users.GetUser(userID); if (mgrID == "michaelcullen") { if (addMngr == EncompassApplication.Session.Users.Groups.GetGroupByName(cullen)) { addMngr.AddUser(idMngr); } } if (mgrID == "ronaldglass") { if (addMngr == EncompassApplication.Session.Users.Groups.GetGroupByName(glass)) { addMngr.AddUser(idMngr); } } if (mgrID == "glenmurphy") { if (addMngr == EncompassApplication.Session.Users.Groups.GetGroupByName(murphy)) { addMngr.AddUser(idMngr); } } } IOrganizationManager orgMgr = EllieMae.EMLite.RemotingServices.Session.OrganizationManager; UserInfo userInfo = orgMgr.GetUser(userID); userInfo.RequirePasswordChange = true; userInfo.PersonaAccessComments = "Created via " + taskNo + " on " + DateTime.Now; orgMgr.UpdateUser(userInfo); } stop: stopGO = "1"; } userWorkbook.Close(true, null, null); userApp.Quit(); Marshal.ReleaseComObject(userWorksheet); Marshal.ReleaseComObject(userWorkbook); Marshal.ReleaseComObject(userApp); }