public static bool validateMemberOrganizationModel(MemberOrganizationModel MemberOrganizationModel) { var validationResults = new List <ValidationResult>(); //validate MemberOrganizationModel var validationContext = new ValidationContext(MemberOrganizationModel, serviceProvider: null, items: null); bool isValid = System.ComponentModel.DataAnnotations.Validator.TryValidateObject(MemberOrganizationModel, validationContext, validationResults, true); return(isValid); }
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); }
private static ASAMemberModel ConvertProfileToASAMember(IMemberProfileData profile, Dictionary <String, Object> providerKeys = null) { const string logMethodName = ".ConvertProfileToASAMember(IMemberProfileData profile, Dictionary<String, Object> providerKeys = null) - "; _log.Debug(logMethodName + "Begin Method"); var model = new ASAMemberModel(); //The memberID for the framework is the ADKey in avectra and AD model.ActiveDirectoryKey = profile.ActiveDirectoryKey.ToString(); model.LegalFirstName = profile.FirstName; model.LastName = profile.LastName; model.FirstName = profile.FirstName; model.DisplayName = profile.DisplayName; model.Source = profile.Source; model.YearOfBirth = profile.YearOfBirth; model.USPostalCode = profile.USPostalCode; model.SALTSchoolTypeID = profile.SALTSchoolTypeID; model.MembershipId = profile.MemberId.ToString(); model.GradeLevel = profile.GradeLevel; model.EnrollmentStatus = profile.EnrollmentStatus; model.InvitationToken = profile.InvitationToken; model.IsCommunityActive = profile.IsCommunityActive; model.WelcomeEmailSent = profile.WelcomeEmailSent; model.ContactFrequency = profile.ContactFrequency; model.Emails = new List <MemberEmailModel> { new MemberEmailModel() { EmailAddress = profile.EmailAddress, IsPrimary = true } }; if (profile.Organizations != null) { foreach (MemberOrganizationData organizationData in profile.Organizations) { MemberOrganizationModel mom = new MemberOrganizationModel(); mom.OrganizationId = organizationData.OrganizationId; mom.OECode = organizationData.OECode; mom.BranchCode = organizationData.BranchCode; mom.ExpectedGraduationYear = organizationData.ExpectedGraduationYear; mom.IsOrganizationDeleted = organizationData.IsOrganizationDeleted; model.Organizations.Add(mom); } } _log.Debug(logMethodName + "End Method"); return(model); }
/// <summary> /// To the domain object for member organization. /// </summary> /// <param name="organizationContracts">member organization contracts.</param> /// <returns></returns> public static List <MemberOrganizationModel> ToDomainObject(this MemberOrganizationContract[] organizationContracts) { var toReturn = new List <MemberOrganizationModel>() { }; if (organizationContracts != null) { foreach (var item in organizationContracts) { var model = new MemberOrganizationModel(); //MemberOrganization Data model.MemberId = item.MemberID; model.OrganizationId = item.RefOrganizationID; model.OrganizationExternalID = item.OrganizationExternalID; model.ExpectedGraduationYear = item.ExpectedGraduationYear; model.ReportingId = item.SchoolReportingID; model.EffectiveStartDate = item.EffectiveStartDate; model.EffectiveEndDate = item.EffectiveEndDate; model.IsPrimary = true; model.Brand = !string.IsNullOrEmpty(item.OrganizationLogoName) ? item.OrganizationLogoName : "nologo"; model.SchoolType = item.RefSALTSchoolTypeID; //RefOrganization Data model.OrganizationName = item.OrganizationName; model.IsContracted = item.IsContracted; model.OECode = item.OECode; model.BranchCode = item.BranchCode; model.OrganizationLogoName = item.OrganizationLogoName; model.OrganizationAliases = item.OrganizationAliases; model.RefSALTSchoolTypeID = item.RefSALTSchoolTypeID; model.IsLookupAllowed = item.IsLookupAllowed; model.RefOrganizationTypeId = item.RefOrganizationTypeID; model.OrganizationTypeExternalId = item.OrganizationTypeExternalID; toReturn.Add(model); } } return(toReturn); }
public ASAMemberModel RegisterMember(ASAMemberModel memberIn, bool logon = false) { const string logMethodName = ".RegisterMember(ASAMemberModel memberIn) - "; Log.Debug(logMethodName + "Begin Method"); bool validModel = ASAMemberValidation.ValidateASAMember(memberIn); if (validModel) { //If no organization has been supplied check to see if a school has been supplied; this is for backwards compatibility, //if no organization or school, allocate one and set to No School Selected if (memberIn.Organizations == null || memberIn.Organizations.Count == 0) { if (memberIn.Schools == null || memberIn.Schools.Count == 0) { MemberOrganizationModel mom = new MemberOrganizationModel() { OECode = "000000", BranchCode = "00" }; memberIn.Organizations = new List <MemberOrganizationModel>() { mom }; Log.Info(logMethodName + String.Format("Organization manually added for member: {0}. Set to No School Selected", memberIn.Emails[0].EmailAddress)); } else { MemberOrganizationModel mom = new MemberOrganizationModel() { OECode = memberIn.Schools[0].OECode, BranchCode = memberIn.Schools[0].BranchCode, ExpectedGraduationYear = memberIn.ExpectedGraduationYear }; memberIn.Organizations = new List <MemberOrganizationModel>() { mom }; Log.Info(logMethodName + String.Format("Organization copied from school model for member: {0}.", memberIn.Emails[0].EmailAddress)); } } //only 2 items should be entered per registration and they should not be the same if (memberIn.Organizations.Count == 2) { //will count the unique organization ids, should be 2, if 1 then they are the same, remove one if (1 == memberIn.Organizations.GroupBy(o => o.OrganizationId).Count()) { memberIn.Organizations.RemoveAt(1); Log.Info(logMethodName + String.Format("Duplicate Organization removed for member: {0} and continuing to process", memberIn.Emails[0].EmailAddress)); } } if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Session != null) { Log.Debug(logMethodName + "ClearSession being called at the beginning of Regsitration process"); Utility.BaseSession.ClearSession(); } MemberCreationStatus createStatus; var member = new ASAMemberModel(); if (_asaMemberAdapter.GetMemberByEmail(memberIn.Emails[0].EmailAddress) != null) { var error = new ErrorModel("Error. It looks like you already have a SALT account. Visit saltmoney.org to login or to recover your password.", "WEB ASAMember Service"); error.Code = "DuplicateUserName"; member.ErrorList.Add(error); Log.Debug(logMethodName + "End Method"); return(member); } var authInfo = new MemberAuthInfo { Username = memberIn.Emails[0].EmailAddress, Email = memberIn.Emails[0].EmailAddress, Password = memberIn.Password, }; var profile = new MemberProfileData { ContactFrequency = memberIn.ContactFrequency, FirstName = memberIn.FirstName, LastName = memberIn.LastName, EmailAddress = memberIn.Emails[0].EmailAddress, Source = memberIn.Source, InvitationToken = memberIn.InvitationToken, YearOfBirth = memberIn.YearOfBirth, }; if (memberIn.Organizations.Any()) { profile.Organizations = new MemberOrganizationList <MemberOrganizationData>(); foreach (MemberOrganizationModel organization in memberIn.Organizations) { MemberOrganizationData item = new MemberOrganizationData(); item.OrganizationId = organization.OrganizationId; item.OECode = organization.OECode; item.BranchCode = organization.BranchCode; item.ExpectedGraduationYear = organization.ExpectedGraduationYear; item.ReportingId = organization.ReportingId; item.IsOrganizationDeleted = organization.IsOrganizationDeleted; profile.Organizations.Add(item); } } var newMember = IntegrationLoader.LoadDependency <ISiteMembership>("siteMembership").CreateMember(authInfo, profile, out createStatus); if (createStatus != MemberCreationStatus.Success) { var error = new ErrorModel("Error. Unable to complete your registration. Please check your information and try again.", "ASAMember Service"); error.Code = "GenericError"; member.ErrorList.Add(error); Log.Debug(logMethodName + "End Method"); return(member); } if (logon) { memberIn = _asaMemberAdapter.Logon(logon, memberIn.Emails[0].EmailAddress); _asaMemberAdapter.SetMemberIdCookie(memberIn.MembershipId); } } return(memberIn); }