Example #1
0
        private IdentityResult AddInternshipsAttributes(IdentityResult result, Dictionary <string, object> context, string optionalParam, string email)
        {
            result.AddAttribute("UserID", email);
            if (optionalParam == "mobileInternships")
            {
                result.AddAttribute("Mobile", "true");
            }

            var utmParams = HttpUtility.ParseQueryString(string.Empty);

            foreach (var param in context)
            {
                if (param.Key.StartsWith("utm_"))
                {
                    utmParams.Add(param.Key, param.Value.ToString());
                }
            }

            if (context.ContainsKey("UrlSuffix"))
            {
                string redirectUrl = (String)context["UrlSuffix"];
                if (utmParams.Count > 0)
                {
                    redirectUrl += "?" + utmParams.ToString();
                }
                result.AddAttribute("RedirectUrl", redirectUrl);
            }
            return(result);
        }
Example #2
0
        private IdentityResult AddRemoteLearnerAttributes(IdentityResult result, SiteMemberModel memberModel)
        {
            //ReportingID
            int reportingIdCount = memberModel.Organizations.Count(org => !string.IsNullOrEmpty(org.ReportingId));

            if (reportingIdCount == 1)
            {
                var reportingId = memberModel.Organizations.First(org => !string.IsNullOrEmpty(org.ReportingId)).ReportingId;
                result.AddAttribute("ReportingID", reportingId);
            }
            else if (reportingIdCount > 1)
            {
                result.AddAttribute("ReportingID", "******"); //passing placeholder value to moodle to mean user has multiple reporting ids
            }

            //Courses
            var courses = memberModel.OrganizationProducts.Where(p => p.ProductTypeID == 1).ToList();

            if (courses.Count > 0)
            {
                foreach (var course in courses)
                {
                    //E.g. ("Budgeting", "1");
                    result.AddAttribute(course.ProductName, course.IsOrgProductActive ? "1" : "0");
                }
            }

            return(result);
        }
Example #3
0
        private IdentityResult AddSSOCoreAttributes(IdentityResult result, SiteMemberModel memberModel, string partnerName, bool getsAdditionalValues)
        {
            //Add core attributes
            result.Identity = memberModel.PrimaryEmailKey;
            result.AddAttribute("FirstName", memberModel.FirstName);
            result.AddAttribute("LastName", memberModel.LastName);
            result.AddAttribute("Email", memberModel.PrimaryEmailKey);
            result.AddAttribute("PartnerName", partnerName);

            if (getsAdditionalValues)
            {
                string oeCode = "000000", branchCode = "00", oeAndBranch, organizationName = "", organizationLogoName = "", isMemberBenefit = "false";
                //determine where a single org info is required to be provided
                MemberOrganizationModel determinedOrg = new MemberOrganizationModel();
                //Connection with remote Learner
                if (partnerName == "SaltIDP/RemoteLearner/PSP_Dev_ConnectionTo_MoodlePortal" || partnerName == "SaltIDP/RemoteLearner/PSP_Test_ConnectionTo_MoodlePortal" || partnerName == "SaltIDP/RemoteLearner/PSP_Stage_ConnectionTo_MoodlePortal" || partnerName == "SaltIDP/RemoteLearner/PSP_Prod_ConnectionTo_MoodlePortal")
                {
                    //pick determined org based on determined org id
                    if (memberModel.OrganizationIdForCourses != null)
                    {
                        determinedOrg = memberModel.Organizations.Find(o => o.OrganizationId.ToString() == memberModel.OrganizationIdForCourses);
                    }
                    else if (memberModel.Organizations.Count() == 1) //no org determined and there's a single org
                    {
                        determinedOrg = memberModel.Organizations[0];
                    }
                }
                else
                {
                    //pick the first org for Jive. Internships won't get in here since it sets getsAdditionalValues = false;
                    determinedOrg = memberModel.Organizations[0];
                }

                if (determinedOrg.OECode != null)
                {
                    oeCode = determinedOrg.OECode;
                }
                if (determinedOrg.BranchCode != null)
                {
                    branchCode = determinedOrg.BranchCode;
                }
                oeAndBranch          = oeCode + branchCode;
                organizationName     = determinedOrg.OrganizationName;
                organizationLogoName = determinedOrg.OrganizationLogoName;
                isMemberBenefit      = (!string.IsNullOrWhiteSpace(determinedOrg.OrganizationLogoName) && !determinedOrg.OrganizationLogoName.Equals("nologo", StringComparison.OrdinalIgnoreCase)).ToString();
                result.AddAttribute("OECode", oeCode);
                result.AddAttribute("OEBranch", oeAndBranch);
                result.AddAttribute("SchoolName", organizationName);
                result.AddAttribute("SchoolLogoName", organizationLogoName);
                result.AddAttribute("IsMemberBenefit", isMemberBenefit); //as far as business this is not used/set in courses, may need to confer with oleg though
                result.AddAttribute("MembershipId", memberModel.MembershipId);
            }

            return(result);
        }
Example #4
0
        private IdentityResult AddJiveAttributes(IdentityResult result, SiteMemberModel memberModel, string optionalParam)
        {
            //populating isAmbassodor flag
            string isSchoolAmbassador = "False", enrollmentStatus = "", loanStatus = "";
            bool   isASAEmployee = false;

            foreach (var item in memberModel.Roles)
            {
                if (item != null && item.IsMemberRoleActive)
                {
                    if (item.RoleName == "School Ambassador")
                    {
                        isSchoolAmbassador = "True";
                    }
                    else if (item.RoleName == "ASA Employee")
                    {
                        isASAEmployee = true;
                    }
                }
            }

            if (isASAEmployee)
            {
                result.AddAttribute("UserGroup", "SALT Employee");
            }
            else
            {
                result.AddAttribute("UserGroup", "SALT Member");
            }

            if (!string.IsNullOrEmpty(memberModel.EnrollmentStatus))
            {
                Dictionary <string, string> enrollmentDict = new Dictionary <string, string>()
                {
                    { "F", "I'm enrolled full time" },
                    { "H", "I'm enrolled half time" },
                    { "L", "I'm enrolled less than half time" },
                    { "G", "I'm already graduated" },
                    { "W", "I left before graduating" },
                    { "X", "I haven't gone to college" }
                };
                enrollmentStatus = enrollmentDict[memberModel.EnrollmentStatus];
            }
            if (memberModel.ProfileQAndAs.Count > 0)
            {
                foreach (var qa in memberModel.ProfileQAndAs)
                {
                    if (qa.QuestionName == "Student Loan Repayment Status")
                    {
                        loanStatus = qa.AnsName;
                        break;
                    }
                }
            }
            if (!String.IsNullOrEmpty(optionalParam))
            {
                result.AddAttribute("CampaignID", optionalParam);
            }

            if (string.IsNullOrEmpty(memberModel.CommunityDisplayName))
            {
                memberModel.CommunityDisplayName = ConfigurationManager.AppSettings["CommunityDefaultUserName"].ToString();
            }

            result.AddAttribute("IsSchoolAmbassador", isSchoolAmbassador);
            result.AddAttribute("CommunityDisplayName", memberModel.CommunityDisplayName);
            result.AddAttribute("IsCommunityActive", memberModel.IsCommunityActive.ToString());
            result.AddAttribute("YearOfBirth", memberModel.YearOfBirth.ToString());
            result.AddAttribute("GraduationYear", memberModel.Organizations[0].ExpectedGraduationYear.ToString()); //this needs an answer from business on the rules.
            result.AddAttribute("EnrollmentStatus", enrollmentStatus);
            result.AddAttribute("LoanStatus", loanStatus);

            return(result);
        }