private UserContext DemoUserLogin(User user, UnitOfWork uow, int?schoolYearId = null) { if (user == null) { return(null); } if (!user.District.IsDemoDistrict) { throw new ChalkableException("This login is allowed to demo district only"); } Guid?developerId = null; var developer = new DeveloperDataAccess(uow).GetDeveloper(user.District.Id); if (developer != null) { developerId = developer.Id; } var schoolUser = user.SchoolUsers.First(); var schoolYear = DemoSchoolYearService.GetDemoSchoolYear(); int roleId; var personId = DemoPersonService.GetPersonDataForLogin(schoolUser.User, out roleId); var res = new UserContext(user, CoreRoles.GetById(roleId), user.District, schoolUser.School, developerId, personId, null, schoolYear) { Claims = ClaimInfo.Create(DemoUserService.GetDemoClaims()) }; return(res); }
private static UserContext CreateUserContext(SchoolUser schoolUser, Data.School.Model.SchoolYear schoolYear = null) { int roleId; int personId = schoolUser.User.IsDemoUser ? DemoPersonService.GetPersonDataForLogin(schoolUser.User, out roleId) : PersonDataAccess.GetPersonDataForLogin(schoolUser.User.District.ServerUrl, schoolUser.DistrictRef, schoolUser.UserRef, out roleId); var user = schoolUser.User; var school = schoolUser.School; var role = CoreRoles.GetById(roleId); Guid?developerId = null; if (schoolUser.User.IsDemoUser) { var developer = CreateMasterSysAdmin().UserService.GetById(user.District.Id); if (developer != null) { developerId = developer.Id; } } return(new UserContext(user, role, user.District, school, developerId, personId, null, schoolYear)); }