public async Task StudentControllerTests_CreateStudent_ShouldFailIfClassDoesNotExist()
        {
            //Arrange
            var schoolClass = new SchoolClassViewModel
            {
                name          = "Science",
                classLocation = "Room B",
                teacherName   = "John Smith"
            };
            var result = await CreateSchoolClass(schoolClass);

            var student = new StudentViewModel
            {
                firstName = "ABC",
                surName   = "XYZ",
                age       = 20,
                gpa       = (decimal)5.5,
                classId   = result.classId * 10,
            };
            // Act
            var outResult = await _studentsController.CreateStudent(student);

            // Assert
            var failedRequest = outResult as BadRequestObjectResult;

            Assert.NotNull(failedRequest);
        }
        public async Task StudentControllerTests_ShouldBeAbleToCreateNew_Student()
        {
            //Arrange
            var schoolClass = new SchoolClassViewModel
            {
                name          = "Science",
                classLocation = "Room B",
                teacherName   = "John Smith"
            };
            var result = await CreateSchoolClass(schoolClass);

            var student = new StudentViewModel
            {
                firstName = "ABC",
                surName   = "XYZ",
                age       = 20,
                gpa       = (decimal)5.5,
                classId   = result.classId,
            };
            // Act
            var createdStudent = await CreateStudent(student);

            // Assert
            Assert.NotNull(createdStudent);
            Assert.Equal(student.firstName, createdStudent.firstName);
        }
Esempio n. 3
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,ClassName,ProgramManagerId,Created")] SchoolClassViewModel schoolClass)
        {
            if (id != schoolClass.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(schoolClass);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SchoolClassExists(schoolClass.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(schoolClass));
        }
Esempio n. 4
0
        public void EditClass(SchoolClassViewModel viewModel)
        {
            var src = _repository.GetById <SchoolClass>(viewModel.Id);

            src.ClassName = viewModel.Name;
            _repository.Save(src);
        }
Esempio n. 5
0
        // GET: SchoolClasses/Details/5
        public async Task <IActionResult> Details(Guid?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }

            var schoolClass = await _context.SchoolClasses
                              .FirstOrDefaultAsync(m => m.Id == id);

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



            var studentIds = _context.SchoolClassStudents
                             .Where(scs => scs.SchoolClassId == id)
                             .Select(scs => scs.StudentId).ToList();
            var classStudents = await FetchUsersIdAsync(studentIds);

            var newModel = new SchoolClassViewModel()
            {
                Id             = schoolClass.Id,
                ClassName      = schoolClass.ClassName,
                ProgramManager = await _userManager.FindByIdAsync(schoolClass.ProgramManagerId),
                Students       = classStudents
            };

            return(View(newModel));
        }
Esempio n. 6
0
        public async Task <IActionResult> UpdateSchoolClass(int id, [FromBody] SchoolClassViewModel entity)
        {
            // validate state
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Map view model to DB model
            var schoolClass = _mapper.Map <SchoolClassViewModel, SchoolClass>(entity);

            _context.Entry(schoolClass).State = EntityState.Modified;

            try
            {
                await _unitOfWork.CompleteAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                // if class not exist in database
                if (!SchoolClassExists(id))
                {
                    return(NotFound());
                }

                throw;
            }

            // Return Id
            return(Ok(id));
        }
        // GET: SchoolClasses/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }

            var schoolClass = await _context.SchoolClasses
                              .FirstOrDefaultAsync(m => m.Id == id);

            if (schoolClass == null)
            {
                return(RedirectToAction("Index"));
            }

            var enrolledStudentIds = _context.SchoolClassStudents
                                     .Where(scs => scs.SchoolClassId == id)
                                     .Select(scs => scs.StudentId).ToList();
            var enrolledStudents = await GetUsersFromIdAsync(enrolledStudentIds);

            var viewModel = new SchoolClassViewModel()
            {
                Id       = schoolClass.Id,
                Name     = schoolClass.Name,
                Teacher  = await _userManager.FindByIdAsync(schoolClass.TeacherId),
                Students = enrolledStudents
            };

            return(View(viewModel));
        }
        // GET: SchoolClasses/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }

            var schoolClass = await _context.SchoolClasses.FindAsync(id);

            if (schoolClass == null)
            {
                return(RedirectToAction("Index"));
            }

            var enrolledStudentIds = _context.SchoolClassStudents
                                     .Where(scs => scs.SchoolClassId == schoolClass.Id)
                                     .Select(scs => scs.StudentId).ToList();

            var enrolledStudents = await GetUsersFromIdAsync(enrolledStudentIds);

            var viewModel = new SchoolClassViewModel
            {
                Id         = schoolClass.Id,
                Name       = schoolClass.Name,
                Teacher    = await _userManager.FindByIdAsync(schoolClass.TeacherId),
                TeacherId  = schoolClass.TeacherId,
                Students   = enrolledStudents,
                StudentIds = enrolledStudentIds
            };

            await SchoolClassViewModel.UpdateUserList(_userManager);

            return(View(viewModel));
        }
        // GET: SchoolClasses
        public async Task <IActionResult> Index()
        {
            var schoolClasses = await _context.SchoolClasses.ToListAsync();

            var schoolClassStudents = await _context.SchoolClassStudents.ToListAsync();

            var viewModels = new List <SchoolClassViewModel>();

            foreach (var sc in schoolClasses)
            {
                var studentIds = schoolClassStudents
                                 .Where(scs => scs.SchoolClassId == sc.Id)
                                 .Select(scs => scs.StudentId).ToList();

                viewModels.Add(new SchoolClassViewModel
                {
                    Id       = sc.Id,
                    Name     = sc.Name,
                    Teacher  = await _userManager.FindByIdAsync(sc.TeacherId),
                    Students = await GetUsersFromIdAsync(studentIds)
                });
            }

            await SchoolClassViewModel.UpdateUserList(_userManager);

            return(View(viewModels));
        }
Esempio n. 10
0
        protected async Task UpdateSchoolClass(SchoolClassViewModel studentClass)
        {
            var result = await _schoolClassesController.UpdateSchoolClass(studentClass.classId, studentClass);

            var okObjectResult = result as OkObjectResult;

            Assert.NotNull(okObjectResult);
        }
Esempio n. 11
0
        protected async Task <SchoolClassViewModel> CreateSchoolClass(SchoolClassViewModel studentClass)
        {
            var result = await _schoolClassesController.CreateSchoolClass(studentClass);

            var okObjectResult = result as OkObjectResult;

            Assert.NotNull(okObjectResult);
            return(okObjectResult.Value as SchoolClassViewModel);
        }
Esempio n. 12
0
 public ActionResult AddClass(SchoolClassViewModel viewModel)
 {
     if (ModelState.IsValid)
     {
         _classesService.AddClass(viewModel);
         ViewBag.Message = "Added";
     }
     return(RedirectToAction("Index"));
 }
        public PartialViewResult GetASchoolClass(int?id)
        {
            SchoolClassViewModel _schoolClassViewModel = new SchoolClassViewModel();

            if (id == null)
            {
                var _exitGradeBlank = from grad in db.GradeMajors //年级和专业来自gradeMajor;
                                      where grad.GradeMajorIsValidate == true
                                      select grad.Grade;
                _schoolClassViewModel.GradesList = new SelectList(_exitGradeBlank.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName");


                var _exitDepartmentBlank = from grad in db.GradeMajors.Include(x => x.Major.Department)
                                           select grad.Major.Department;
                _schoolClassViewModel.DepartmentList = new SelectList(_exitDepartmentBlank.Distinct().OrderBy(x => x.DepartmentID), "DepartmentID", "DepartmentName");



                var _exitMajorBlank = from maj in db.GradeMajors.Include(x => x.Major)
                                      select maj.Major;
                _schoolClassViewModel.MajorsList    = new SelectList(_exitMajorBlank.Distinct().OrderBy(x => x.MajorID), "MajorID", "MajorName");
                _schoolClassViewModel.StudentNumber = 0;

                return(PartialView("_Modal.FormContent", _schoolClassViewModel));
            }

            SchoolClass _schoolClass = db.SchoolClasses.Find(id);

            _schoolClassViewModel.SchoolClassID = _schoolClass.SchoolClassID;


            var _exitGrade = from grad in db.GradeMajors //年级和专业来自gradeMajor;
                             where grad.GradeMajorIsValidate == true
                             select grad.Grade;

            _schoolClassViewModel.GradesList = new SelectList(_exitGrade.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName", _schoolClass.GradeMajor.GradeID);

            var _exitDepartment = from grad in db.GradeMajors.Include(x => x.Major.Department)
                                  select grad.Major.Department;

            _schoolClassViewModel.DepartmentList = new SelectList(_exitDepartment.Distinct().OrderBy(x => x.DepartmentID), "DepartmentID", "DepartmentName", _schoolClass.GradeMajor.Major.DepartmentID);


            var _exitMajor = from maj in db.GradeMajors.Include(x => x.Major)
                             where (maj.GradeMajorIsValidate == true)
                             select maj.Major;

            _schoolClassViewModel.MajorsList      = new SelectList(_exitMajor.Distinct().OrderBy(x => x.MajorID), "MajorID", "MajorName", _schoolClass.GradeMajor.MajorID);
            _schoolClassViewModel.SchoolClassName = _schoolClass.SchoolClassName;
            _schoolClassViewModel.StudentNumber   = _schoolClass.StudentNumber;

            return(PartialView("_Modal.FormContent", _schoolClassViewModel));
        }
Esempio n. 14
0
        public async Task SchoolClassesControllerTests_ShouldBeAbleToRemove_SchoolClass()
        {
            //Arrange
            var schoolClass = new SchoolClassViewModel
            {
                name          = "Science",
                classLocation = "Room B",
                teacherName   = "John Smith"
            };
            var result = await CreateSchoolClass(schoolClass);

            // Act and assert
            await RemoveSchoolClass(result.classId);
        }
Esempio n. 15
0
 public ActionResult EditClass(long id, SchoolClassViewModel vm)
 {
     try
     {
         // TODO: Add update logic here
         if (ModelState.IsValid)
         {
             _classesService.EditClass(vm);
             ViewBag.Message = "Edited";
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View("Index", _classesService.GetClasses()));
     }
 }
Esempio n. 16
0
        public async Task SchoolClassesControllerTests_ShouldBeAbleToCreateNew_SchoolClass()
        {
            //Arrange
            var schoolClass = new SchoolClassViewModel
            {
                name          = "Science",
                classLocation = "Room B",
                teacherName   = "John Smith"
            };

            // Act
            var result = await CreateSchoolClass(schoolClass);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(schoolClass.name, result.name);
        }
        public async Task <IActionResult> Create([Bind("Id,Name,TeacherId")] SchoolClassViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var schoolClass = new SchoolClass
                {
                    Id        = viewModel.Id,
                    Name      = viewModel.Name,
                    TeacherId = viewModel.TeacherId
                };

                _context.Add(schoolClass);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(viewModel));
        }
Esempio n. 18
0
        public async Task <IActionResult> CreateSchoolClass([FromBody] SchoolClassViewModel entity)
        {
            // validate state
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Map view model to DB model
            var schoolClass = _mapper.Map <SchoolClassViewModel, SchoolClass>(entity);

            _schoolClassRepository.AddSchoolClass(schoolClass);

            // Save
            await _unitOfWork.CompleteAsync();

            schoolClass = await _schoolClassRepository.GetSchoolClassAsync(schoolClass.Id);

            // Return mapped model
            var result = _mapper.Map <SchoolClass, SchoolClassViewModel>(schoolClass);

            return(Ok(result));
        }
Esempio n. 19
0
        public async Task <IActionResult> Create([Bind("Id")] SchoolClassViewModel schoolClass)
        {
            var tests = await _context.Classes.ToListAsync();

            foreach (var test in tests)
            {
                if (test.Id == schoolClass.Id)
                {
                    ViewBag.ErrorMessage = "Klassnamnet finns redan";

                    return(View("Create", schoolClass));
                }
            }

            if (ModelState.IsValid)
            {
                _context.Add(schoolClass);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(schoolClass));
        }
Esempio n. 20
0
 public void Add(SchoolClassViewModel classViewModel)
 {
     _context.SchoolClass.Add(new MedicalClass());
 }
Esempio n. 21
0
 public void AddClass(SchoolClassViewModel viewModel)
 {
     _repository.AddNew(Mapper.Instance.Map <SchoolClass>(viewModel));
 }
        // GET: SchoolClasses/Create
        public async Task <IActionResult> Create()
        {
            await SchoolClassViewModel.UpdateUserList(_userManager);

            return(View());
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,StudentIds,TeacherId")] SchoolClassViewModel viewModel)
        {
            if (id != viewModel.Id)
            {
                return(RedirectToAction("Index"));
            }

            if (ModelState.IsValid)
            {
                // Uppdatera tabell (SchoolClass)
                var schoolClass = new SchoolClass
                {
                    Id        = id,
                    Name      = viewModel.Name,
                    TeacherId = viewModel.TeacherId
                };

                try
                {
                    _context.Update(schoolClass);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SchoolClassExists(schoolClass.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }


                // Uppdatera relation (SchoolClassStudents)
                var oldStudentList = await _context.SchoolClassStudents
                                     .Where(scs => scs.SchoolClassId == id).ToListAsync();

                var updatedStudentList = viewModel.StudentIds?
                                         .Select(studentId => new SchoolClassStudent
                {
                    StudentId = studentId, SchoolClassId = id
                })
                                         .ToList();

                var studentsToRemove = new List <SchoolClassStudent>();

                if (updatedStudentList == null)
                {
                    studentsToRemove = oldStudentList;
                }
                else
                {
                    studentsToRemove = oldStudentList.Except(updatedStudentList).ToList();
                }

                try
                {
                    if (studentsToRemove.Any())
                    {
                        foreach (var student in studentsToRemove)
                        {
                            _context.Remove(student);
                        }
                    }

                    if (updatedStudentList != null)
                    {
                        foreach (var newStudent in updatedStudentList)
                        {
                            if (SchoolClassStudentExists(newStudent.StudentId))
                            {
                                _context.Update(newStudent);
                            }
                            else
                            {
                                _context.Add(newStudent);
                            }
                        }
                    }

                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SchoolClassExists(schoolClass.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }


                return(RedirectToAction(nameof(Index)));
            }
            return(View(viewModel));
        }
        public PartialViewResult GetASchoolClass(int?id)
        {
            SchoolClassViewModel _schoolClassViewModel = new SchoolClassViewModel();


            //获取当前用户所负责征订的部门;2017.12.30
            //var currentDepartments = UserManager.Users.Include(x => x.Departments).SingleOrDefault(x => x.Id == User.Identity.GetUserId()).Departments.ToList();

            //获取当前用户所负责征订的部门;2017.12.30
            var exitUsers = UserManager.Users.Include(x => x.Departments).ToList();              //获取系统所有用户 及管理的部门。

            var currentUser = exitUsers.SingleOrDefault(x => x.Id == User.Identity.GetUserId()); //获取登录用户。

            var currentDepartments = currentUser.Departments.ToList();                           //获取登录用户所管理的部门。


            if (id == null)
            {
                var _exitGradeBlank = from grad in db.GradeMajors //年级和专业来自gradeMajor;
                                      where grad.GradeMajorIsValidate == true
                                      select grad.Grade;

                _schoolClassViewModel.GradesList = new SelectList(_exitGradeBlank.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName");


                var _exitDepartmentBlank = from grad in db.GradeMajors.Include(x => x.Major.Department)
                                           select grad.Major.Department;
                var queryDepartmentsBlank = _exitDepartmentBlank.Distinct().OrderBy(x => x.DepartmentID).ToList();

                var returnDepartmentsBlank = new List <Department>();
                foreach (var departmentItem in queryDepartmentsBlank)
                {
                    if (currentDepartments.Contains(departmentItem))
                    {
                        returnDepartmentsBlank.Add(departmentItem);
                    }
                }

                _schoolClassViewModel.DepartmentList = new SelectList(returnDepartmentsBlank.Distinct().OrderBy(x => x.DepartmentID).ToList(), "DepartmentID", "DepartmentName");



                var _exitMajorBlank = from maj in db.GradeMajors.Include(x => x.Major)
                                      select maj.Major;

                var queryMajorBlank   = _exitMajorBlank.Distinct().OrderBy(x => x.DepartmentID).ThenBy(x => x.MajorID).ToList();
                var returnMajorsBlank = new List <Major>();
                foreach (var majorItem in queryMajorBlank)
                {
                    if (currentDepartments.Contains(majorItem.Department))
                    {
                        returnMajorsBlank.Add(majorItem);
                    }
                }

                _schoolClassViewModel.MajorsList    = new SelectList(returnMajorsBlank.Distinct().OrderBy(x => x.MajorID).ToList(), "MajorID", "MajorName");
                _schoolClassViewModel.StudentNumber = 0;

                return(PartialView("_Modal.FormContent", _schoolClassViewModel));
            }

            SchoolClass _schoolClass = db.SchoolClasses.Find(id);

            _schoolClassViewModel.SchoolClassID = _schoolClass.SchoolClassID;


            var _exitGrade = from grad in db.GradeMajors //年级和专业来自gradeMajor;
                             where grad.GradeMajorIsValidate == true
                             select grad.Grade;

            _schoolClassViewModel.GradesList = new SelectList(_exitGrade.Distinct().OrderBy(g => g.GradeID).ToList(), "GradeID", "GradeName", _schoolClass.GradeMajor.GradeID);

            var _exitDepartment = from grad in db.GradeMajors.Include(x => x.Major.Department)
                                  select grad.Major.Department;
            var queryDepartments = _exitDepartment.Distinct().OrderBy(x => x.DepartmentID).ToList();

            var returnDepartments = new List <Department>();

            foreach (var departmentItem in queryDepartments)
            {
                if (currentDepartments.Contains(departmentItem))
                {
                    returnDepartments.Add(departmentItem);
                }
            }
            _schoolClassViewModel.DepartmentList = new SelectList(returnDepartments.Distinct().OrderBy(x => x.DepartmentID).ToList(), "DepartmentID", "DepartmentName", _schoolClass.GradeMajor.Major.DepartmentID);


            var _exitMajor = from maj in db.GradeMajors.Include(x => x.Major)
                             where (maj.GradeMajorIsValidate == true)
                             select maj.Major;
            var queryMajor   = _exitMajor.Distinct().OrderBy(x => x.DepartmentID).ThenBy(x => x.MajorID).ToList();
            var returnMajors = new List <Major>();

            foreach (var majorItem in queryMajor)
            {
                if (currentDepartments.Contains(majorItem.Department))
                {
                    returnMajors.Add(majorItem);
                }
            }

            _schoolClassViewModel.MajorsList      = new SelectList(returnMajors.Distinct().OrderBy(x => x.DepartmentID).ThenBy(x => x.MajorID).ToList(), "MajorID", "MajorName", _schoolClass.GradeMajor.MajorID);
            _schoolClassViewModel.SchoolClassName = _schoolClass.SchoolClassName;
            _schoolClassViewModel.StudentNumber   = _schoolClass.StudentNumber;

            return(PartialView("_Modal.FormContent", _schoolClassViewModel));
        }
Esempio n. 25
0
        public ActionResult Test(int id)
        {
            var school  = db.Schools.Where(s => s.Id == id);
            var classes = db.SchoolClasses.Include(s => s.School).Where(c => c.SchoolId == id);

            List <SchoolClassViewModel> lista = new List <SchoolClassViewModel>();
            List <ClassChartViewModel>  chart = new List <ClassChartViewModel>();

            foreach (var myClass in classes)
            {
                var recycles = db.Recycles.Include(t => t.RecycleType)
                               .Where(c => c.SchoolClassId == myClass.Id);

                int finalPoints = 0;
                foreach (var item in recycles)
                {
                    finalPoints += item.Units * item.RecycleType.Points;
                }

                var recyclesMonthly = recycles.Where(c => c.DateStamp.Month.Equals(DateTime.Now.Month - 1));
                int points          = 0;
                int plastic         = 0;
                int battery         = 0;
                int glass           = 0;

                foreach (var item in recyclesMonthly)
                {
                    int test = item.DateStamp.Month;
                    points += item.Units * item.RecycleType.Points;
                    switch (item.RecycleTypeId)
                    {
                    case RecycleType.Plastic:
                        plastic += item.Units;
                        break;

                    case RecycleType.Battery:
                        battery += item.Units;
                        break;

                    case RecycleType.Glass:
                        glass += item.Units;
                        break;

                    default:
                        break;
                    }
                }

                var viewModel = new SchoolClassViewModel
                {
                    SchoolClass = myClass,
                    Points      = points,
                    FinalPoints = finalPoints,
                    Plastic     = plastic,
                    Glass       = glass,
                    Batery      = battery
                };

                lista.Add(viewModel);
            }

            var viewModel2 = new ClassViewModel
            {
                List      = lista,
                School    = school.Single(),
                ListChart = Function(id).GetRange(0, 9)
            };

            return(View(viewModel2));
        }