///<summary>Save the local changes in the table to the database.</summary> /// Changes don't persit until SaveChangesIsCalled public async Task <int> SaveChangesAsync() { try { return(await _db.SaveChangesAsync()); } catch (DbUpdateConcurrencyException ex) { Console.WriteLine(ex); throw; } catch (RetryLimitExceededException ex) { Console.WriteLine(ex); throw; } catch (Exception ex) { Console.WriteLine(ex); throw; } }
public async void UploadSessions_AllPeopleCoursesAndReasonsExist_ShouldBeSuccessful() { db.People.AddRange(personList); db.Semesters.Add(semester); db.Classes.AddRange(courseList); db.Reasons.AddRange(reasons); await db.SaveChangesAsync(); var sessionUploads = new List <CSVSessionUpload> () { new CSVSessionUpload() { Email = "*****@*****.**", InTime = DateTime.Now, OutTime = DateTime.Now.Add(TimeSpan.FromHours(2)), CRNs = new List <int> () { 78945, }, Reasons = new List <string> () { "Computer Use", "Bone Use" }, Tutoring = true, SemesterCode = 201901 }, new CSVSessionUpload() { Email = "*****@*****.**", InTime = DateTime.Now, OutTime = DateTime.Now.Add(TimeSpan.FromHours(5)), CRNs = new List <int> () { 78945, 46546 }, Reasons = new List <string> () { "Computer Use" }, Tutoring = false, SemesterCode = 201901 } }; var res = await unitSession.UploadSessions(sessionUploads); Assert.Equal(GetAmountOfRecordsThatShouldBeCreated(sessionUploads), res); Assert.True(CheckSessionWhereCreate(sessionUploads)); }
public async void GetPersonInfo_StudentExistsAndHasSemesterSchedule_ShouldReturnStudentInfoWithoutCallingBanner(string identifier) { var email = identifier; var id = Utils.ParseOrDefault(identifier, 54321687); var person = new Person() { Email = email, FirstName = "Billy", LastName = "Bob", Id = id }; var semester = new Semester() { Code = 201901 }; var classes = new List <Class>() { new Class() { CRN = 163574, Name = "Intro to Powerpoint", ShortName = "PO124", Department = new Department() { Code = 315, Name = "STEM" } } }; var schedule = new Schedule() { PersonId = person.Id, ClassCRN = classes[0].CRN, SemesterCode = semester.Code }; db.Semesters.Add(semester); db.People.Add(person); db.Classes.AddRange(classes); db.Schedules.Add(schedule); await db.SaveChangesAsync(); var bannerPersonInfo = new BannerPersonInfo() { WVUPID = person.Id, EmailAddress = person.Email, Courses = null, FirstName = "Bob", LastName = "Dylan", TermCode = semester.Code }; mockBannerService.Setup(x => x.GetBannerInfo(It.IsAny <string>())).ReturnsAsync(() => bannerPersonInfo); var personInfo = await unitPerson.GetPersonInfo(person.Email); Assert.NotNull(personInfo); Assert.Equal(personInfo.Email, person.Email); mockBannerService.Verify(x => x.GetBannerInfo(It.IsAny <string>()), Times.Once()); Assert.Equal(classes.Select(x => x.CRN), personInfo.Schedule.ToList().Select(x => x.CRN)); var inDBSchedule = db.Schedules.Where(x => x.PersonId == person.Id); Assert.Equal(classes.Count(), inDBSchedule.Count()); }