Example #1
0
        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);
        }
Example #2
0
 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
         }
     };
 }
Example #3
0
        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);
        }
Example #4
0
        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());
        }