コード例 #1
0
        public async Task <IActionResult> Create([Bind("StudentID,CourseID,Paid,Active")] CourseSelection courseSelection)
        {
            if (ModelState.IsValid)
            {
                // Define an object of CourseSelectionOwing and set the details
                CourseSelectionOwing courseSelectionOwing = new CourseSelectionOwing();
                courseSelectionOwing.StudentID = courseSelection.StudentID;
                courseSelectionOwing.CourseID  = courseSelection.CourseID;
                courseSelectionOwing.Active    = true;

                var course = await _context.Courses.FindAsync(courseSelection.CourseID);

                if (course == null)
                {
                    courseSelectionOwing.Owing = 0;
                }
                else
                {
                    courseSelectionOwing.Owing = course.Cost;
                }

                // Add entry for course selection
                _context.Add(courseSelection);
                // Add entry for course selection owing
                _context.Add(courseSelectionOwing);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Create), courseSelection.StudentID));
            }

            if (courseSelection.StudentID == 0)
            {
                return(NotFound());
            }
            var student = await GetStudentWithCourseSelections(courseSelection.StudentID);

            if (student == null)
            {
                return(NotFound());
            }

            var allCourses = await _context.Courses.Where(m => m.Active == true).ToListAsync();

            var availableCourses = new List <Course>();

            // Get available courses for enrollment
            foreach (var course in allCourses)
            {
                if (!student.CourseSelections.Any(m => (m.CourseID == course.CourseID && m.Active)))
                {
                    availableCourses.Add(course);
                }
            }

            ViewData["CourseID"] = new SelectList(availableCourses, "CourseID", "CourseName");

            return(View(new CourseSelection {
                Student = student
            }));
        }
コード例 #2
0
        public async Task <IActionResult> Create([Bind("StudentID,Name,Age,Active")] Student student)
        {
            if (ModelState.IsValid)
            {
                _context.Add(student);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(student));
        }
コード例 #3
0
        public async Task <IActionResult> Create([Bind("CourseID,CourseName,Cost,Active")] Course course)
        {
            if (ModelState.IsValid)
            {
                _context.Add(course);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(course));
        }
コード例 #4
0
        public void Service__GetsAccountById()
        {
            // Arrange
            var id      = 49203841098409218UL;
            var account = GetMockAccount(id, "test_value1", 123, 123, true);

            var options = new DbContextOptionsBuilder <AccountingContext>()
                          .UseInMemoryDatabase(databaseName: "GetsAccountById")
                          .Options;

            // Act
            using (var context = new AccountingContext(options))
            {
                _service = new AccountService(context);
                context.Add(account);

                // Assert
                Assert.Equal(_service.Find(id), account);
            }
        }
コード例 #5
0
        public void Service__UpdatesAccount()
        {
            // Arrange
            var id      = 49203841098409218UL;
            var hasCard = true;

            var oldName    = "test_value1";
            var oldFunds   = 123;
            var oldBalance = 456;

            var newName    = "test_value2";
            var newFunds   = 123123;
            var newBalance = 456456;

            var oldAccount = GetMockAccount(id, oldName, oldFunds, oldBalance, hasCard);
            var newAccount = GetMockAccount(id, newName, newFunds, newBalance, hasCard);

            var options = new DbContextOptionsBuilder <AccountingContext>()
                          .UseInMemoryDatabase(databaseName: "UpdatesAccount")
                          .Options;

            // Act
            using (var context = new AccountingContext(options))
            {
                _service = new AccountService(context);

                context.Add(oldAccount);
                context.SaveChanges();

                _service.Update(id, newAccount);

                var updatedAccount = context.Accounts.Find(id);

                // Assert
                Assert.Equal(newAccount.Name, updatedAccount.Name);
                Assert.Equal(newAccount.Balance, updatedAccount.Balance);
                Assert.Equal(newAccount.AvailableFunds, updatedAccount.AvailableFunds);
                Assert.Equal(newAccount.HasCard, updatedAccount.HasCard);
            }
        }
コード例 #6
0
 public void Add(Transaction newTransaction)
 {
     _context.Add(newTransaction);
     _context.SaveChanges();
 }