public StandardRegisterLoginData MapToStandardRegisterData(AgentDetails agentData, IEnumerable <SupportTeamDetails> supportTeamContactDetails) { StandardRegisterLoginData data = new StandardRegisterLoginData(); data.CostCenter = CostCenterParam; data.Email = agentData.Email; data.FailureMessage = FailureMessageParam; data.FirstName = agentData.FirstName; data.LastName = agentData.LastName; data.Phone = FormatPhoneNumber(agentData.Phone); data.Role = GetMappingRole(agentData.APLId, agentData.Channel, agentData.PC_Status); data.ReturnUrl = ReturnUrlParam; data.SFDCID = agentData.PrimaryAdvisorID; data.SourceSystemName = SourceSystemNameParam; data.UpdateProfile = "true"; data.UserIdentity = agentData.APLId; data.Address = new PhysicalAddressData() { Line1 = agentData.Address1, City = agentData.City, PostalCode = agentData.Zip, State = agentData.State }; var regionalConsultant = supportTeamContactDetails != null?supportTeamContactDetails.Where(t => t.JobTitle == "Regional Consultant").FirstOrDefault() : null; var internalConsultant = supportTeamContactDetails != null?supportTeamContactDetails.Where(t => t.JobTitle == "Internal Consultant").FirstOrDefault() : null; data.AuxFields = new AuxField[5] { new AuxField() { Id = "1", Value = agentData.DivisionManagerWebUserId }, // Manager Identity new AuxField() { Id = "2", Value = regionalConsultant != null ? regionalConsultant.FirstName + " " + regionalConsultant.LastName : null }, // Regional Consultant Name new AuxField() { Id = "3", Value = internalConsultant != null ? internalConsultant.FirstName + " " + internalConsultant.LastName : null }, // Internal Consultant Name new AuxField() { Id = "4", Value = agentData.Channel }, // Channel new AuxField() { Id = "5", Value = agentData.PC_Status } // PC Status }; return(data); }
public void MapImpersonatingUserData(StandardRegisterLoginData data, User userData) { data.ImpersonatingUser = new ImpersonatingUserData() { FirstName = userData != null ? userData.FirstName ?? string.Empty : string.Empty, LastName = userData != null ? userData.LastName ?? string.Empty : string.Empty, UserIdentity = userData != null ? userData.UserName ?? string.Empty : string.Empty, AuxFields = new AuxField[1] { new AuxField() { Id = "6", Value = "Yes" } // Is internal user } }; }
public StandardRegisterLoginData MapToStandardRegisterData(string aplId, IEnumerable <MyProfileInformation> profiles) { StandardRegisterLoginData data = new StandardRegisterLoginData(); var profile = profiles.FirstOrDefault(); data.Address = new PhysicalAddressData() { Line1 = profile.Address1, Line2 = profile.Address2, State = profile.State, City = profile.city, PostalCode = profile.zipcode }; if (!string.IsNullOrWhiteSpace(profile.Email)) { data.Email = profile.Email; } else if (!string.IsNullOrWhiteSpace(profile.PortalEmail)) { data.Email = profile.PortalEmail; } data.CostCenter = CostCenterParam; data.FailureMessage = FailureMessageParam; data.FirstName = profile.Firstname; data.LastName = profile.Lastname; data.Phone = FormatPhoneNumber(profile.Phone); data.Role = GetMappingRole(aplId, string.Empty, null); data.SourceSystemName = SourceSystemNameParam; data.ReturnUrl = ReturnUrlParam; data.UpdateProfile = "true"; data.UserIdentity = aplId; return(data); }
public static NameValueCollection BuildStandardRegisterHtmlFormData(string aplId, bool scriptSubmit = false, string actionUrl = null) { try { //Retrieve the required data from the service var client = new ServiceClient(); StandardRegisterLoginData standardRegisterData = null; Authorization currentAuthorization = Authorization.CurrentAuthorization; var agents = currentAuthorization.Claim.Roles.Where(r => r.RoleId == 6).Select((a) => a.APLId).Distinct().ToArray(); var ssoData = client.GetUserSSODetails(currentAuthorization.Claim.LoggedInSSOGuid); bool isImpersonating = currentAuthorization.Claim.SSOGuid != currentAuthorization.Claim.LoggedInSSOGuid || currentAuthorization.Claim.Roles.Where(r => r.RoleTypeCD == (int)Constants.Security.RoleType.RC || (r.RoleTypeCD == (int)Constants.Security.RoleType.SHAREDACCESS && r.RoleId == 6) || r.RoleTypeCD == (int)Constants.Security.RoleType.RM || r.RoleTypeCD == (int)Constants.Security.RoleType.ADMINASSISTANT) .Count() > 0; if (agents.Length > 0) { int i = 0; for (int j = 0; j < agents.Length; j++) { if (agents[j] == aplId) { i = j; } } var agentData = client.GetAgentDetails(agents[i]); var supportTeamContactDetails = client.GetSupportTeamDetails(agents[i]); if (agentData != null && agentData.AgentDetails != null && agentData.AgentDetails.FirstOrDefault() != null) { // Map the data var mapper = new DataMapper(); standardRegisterData = mapper.MapToStandardRegisterData(agentData.AgentDetails.FirstOrDefault(), supportTeamContactDetails.SupportTeamDetails); if (isImpersonating) { mapper.MapImpersonatingUserData(standardRegisterData, ssoData.User); } } else { Sitecore.Diagnostics.Log.Info(string.Format("Retrieving data for agent " + aplId + " to send to SR is empty."), typeof(Controller)); } } else { var userInfo = client.GetUserInfo(aplId); // Map the data var mapper = new DataMapper(); standardRegisterData = mapper.MapToStandardRegisterData(aplId, userInfo.MyProfileInformation); } // Serialize to xml string List <Type> list = new List <Type>(); list.Add(typeof(AuxField)); list.Add(typeof(ImpersonatingUserData)); list.Add(typeof(PhysicalAddressData)); list.Add(typeof(StandardRegisterLoginData)); string xmlRequestData = SerializationHelper.Serialize <StandardRegisterLoginData>(standardRegisterData, list.ToArray(), XmlNamespace, omitXmlDeclaration: true); Sitecore.Diagnostics.Log.Info(string.Format("Xml data for submission to Standard Register: {0}", xmlRequestData ?? ""), typeof(Controller)); // Build POST data var collection = RequestBuilder.BuildFormFieldValues(Issuer, xmlRequestData, token: null, actionUrl: actionUrl); return(collection); } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Unable to build Standard Register data collection for user " + aplId, ex, typeof(Controller)); } return(new NameValueCollection()); }