Exemplo n.º 1
0
 ///<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;
     }
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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());
        }