public async Task <IActionResult> SignIn([FromBody] KioskSignInDTO signIn) { var person = await _personRepo.Find(x => x.Id == signIn.PersonId); if (person.PersonType == PersonType.Teacher) { var teacherSession = new Session() { InTime = DateTime.Now, PersonId = signIn.PersonId, SemesterCode = _semesterRepo.GetAll().Last().Code }; var teacherResult = await _sessionRepo.Create(teacherSession); if (teacherResult is Session) { return(Created($"sessions/{teacherResult.Id}", teacherResult)); } throw new TCSException("Something went wrong"); } if (!signIn.Tutoring && signIn.SelectedReasons.Count() < 1) { throw new TCSException("Must select 1 or more reasons for visiting."); } var alreadySignedIn = await _sessionRepo.Exist(x => x.PersonId == signIn.PersonId && x.OutTime == null); if (alreadySignedIn) { throw new TCSException("You are already signed in."); } var session = new Session() { InTime = DateTime.Now, SessionClasses = signIn.SelectedClasses.Select(x => new SessionClass() { ClassId = x }).ToList(), SessionReasons = signIn.SelectedReasons.Select(x => new SessionReason() { ReasonId = x }).ToList(), PersonId = signIn.PersonId, SemesterCode = _semesterRepo.GetAll().Last().Code, Tutoring = signIn.Tutoring }; var result = await _sessionRepo.Create(session); if (result is Session) { return(Created($"sessions/{result.Id}", result)); } throw new TCSException("Something went wrong"); }
public async Task <BannerPersonInfo> GetBannerInfo(string identifier) { var person = await personRepo.Find(x => x.Email == identifier || x.Id.ToString() == identifier); if (person is Person) { var currentSemester = semesterRepo.GetAll().Last(); var rand = new Random(person.Id); var takeCount = Math.Ceiling(rand.NextDouble() * 5) + 1; var randomCourses = classRepo.GetAll().ToList().Take((int)takeCount); if (person.PersonType == PersonType.Student) { return(new BannerPersonInfo() { EmailAddress = person.Email, FirstName = person.FirstName, LastName = person.LastName, WVUPID = person.Id, Teacher = false, TermCode = currentSemester.Code, Courses = randomCourses.Select(x => new BannerClass() { CourseName = x.Name, CRN = x.CRN, ShortName = x.ShortName, Department = new BannerDepartment() { Code = x.Department.Code, Name = x.Department.Name } }) }); } else { return(new BannerPersonInfo() { EmailAddress = person.Email, FirstName = person.FirstName, LastName = person.LastName, WVUPID = person.Id, Teacher = true, TermCode = currentSemester.Code, }); } } throw new TCSException($"Person was not found with: {identifier}"); }
public IActionResult Semesters() { return(Ok(_iRepo.GetAll())); }