public LtiGenerateUserNameContext(HttpContext context, ILtiRequest ltiRequest) : base(context) { if (ltiRequest == null) { throw new ArgumentNullException("ltiRequest"); } LtiRequest = ltiRequest; }
public LtiAuthenticateContext(IOwinContext context, ILtiRequest ltiRequest) : base(context) { if (ltiRequest == null) { throw new ArgumentNullException("ltiRequest"); } LtiRequest = ltiRequest; }
public LtiGenerateUserNameContext(IOwinContext context, ILtiRequest ltiRequest) : base(context) { if (ltiRequest == null) { throw new ArgumentNullException("ltiRequest"); } LtiRequest = ltiRequest; }
public async Task <Person> ProcessLtiUser(ILtiRequest parsedRequest) { var user = await ctxManager.Context.People .Include(s => s.Security) .Include(s => s.Faculty) .Include(s => s.Student) .SingleOrDefaultAsync(person => person.BbUserId == parsedRequest.UserId); var emailChecker = new ValidEmailChecker(); if (user != null) { if (user.Email.ToLower() != parsedRequest.LisPersonEmailPrimary.ToLower()) { if (!emailChecker.IsValidEmail(parsedRequest.LisPersonEmailPrimary)) { throw new InvalidEmailException("The email address associated with your LMS account (" + parsedRequest.LisPersonEmailPrimary + ") is not a valid email address."); } if (!await UniqueEmailCheck(parsedRequest.LisPersonEmailPrimary)) { throw new InvalidEmailException("The email address associated with your LMS account (" + parsedRequest.LisPersonEmailPrimary + ") is already being used in ECAT."); } } user.ModifiedById = user.PersonId; } else { if (!emailChecker.IsValidEmail(parsedRequest.LisPersonEmailPrimary)) { throw new InvalidEmailException("The email address associated with your LMS account (" + parsedRequest.LisPersonEmailPrimary + ") is not a valid email address."); } if (!await UniqueEmailCheck(parsedRequest.LisPersonEmailPrimary)) { throw new InvalidEmailException("The email address associated with your LMS account (" + parsedRequest.LisPersonEmailPrimary + ") is already being used in ECAT."); } user = new Person { IsActive = true, MpGender = MpGender.Unk, MpAffiliation = MpAffiliation.Unk, MpComponent = MpComponent.Unk, MpPaygrade = MpPaygrade.Unk, MpInstituteRole = MpInstituteRoleId.Undefined, RegistrationComplete = false }; ctxManager.Context.People.Add(user); } var userIsCourseAdmin = false; switch (parsedRequest.Parameters["Roles"].ToLower()) { case "instructor": userIsCourseAdmin = true; user.MpInstituteRole = MpInstituteRoleId.Faculty; break; case "teachingassistant": user.MpInstituteRole = MpInstituteRoleId.Faculty; break; case "contentdeveloper": user.MpInstituteRole = MpInstituteRoleId.Designer; break; default: user.MpInstituteRole = MpInstituteRoleId.Student; break; } switch (user.MpInstituteRole) { case MpInstituteRoleId.Faculty: user.Faculty = user.Faculty ?? new ProfileFaculty(); user.Faculty.IsCourseAdmin = userIsCourseAdmin; user.Faculty.AcademyId = parsedRequest.Parameters["custom_ecat_school"]; break; case MpInstituteRoleId.Designer: //user.Designer = user.Designer ?? new ProfileDesigner(); //user.Designer.AssociatedAcademyId = parsedRequest.Parameters["custom_ecat_school"]; break; default: user.Student = user.Student ?? new ProfileStudent(); break; } user.IsActive = true; user.Email = parsedRequest.LisPersonEmailPrimary.ToLower(); user.LastName = parsedRequest.LisPersonNameFamily; user.FirstName = parsedRequest.LisPersonNameGiven; user.BbUserId = parsedRequest.UserId; user.ModifiedDate = DateTime.Now; if (await ctxManager.Context.SaveChangesAsync() > 0) { return(user); } throw new UserUpdateException("Save User Changes did not succeed!"); }