Esempio n. 1
0
        //This action uses provide editing the school for a student record
        public async Task<ActionResult> Edit(Guid? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            
            //get the student by id using db context
            Student student = await db.Students.FindAsync(id);

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

            //populate view model with student values retrived from db            
            StudentViewModel studentVM = Mapper.Map<StudentViewModel>(student);

            //student view model has constructor which populates
            // Data of joining property to current date
            // hence repopulating date of joining property with database retrived value
            studentVM.DateOfJoining = student.DateOfJoining;
                       
            
            
            // A model is created just to hold a subset StudentCurrentyear Record
            // namely schoolrefid, academictyearrefid and classrefid
            StudentCurrentYearSubset CurrentYear = new StudentCurrentYearSubset();

            //This loop is nesscary as studentcurrentyear object/table may contain 
            // more than one record for student who are studying in school for 
            // more than one year, so the active flag is checked before retriving the
            // the relevant record for editing
            foreach(var studentCurrentRec in student.StudentCurrentYear)
            {
                if (studentCurrentRec.Active == true)
                {   
                    CurrentYear.SchoolRefID = studentCurrentRec.SchoolRefID;
                    CurrentYear.AcademicYearRefID= studentCurrentRec.AcademicYearRefID;
                    CurrentYear.ClassRefID=studentCurrentRec.ClassRefID;
                    break;
                }
            }


            ViewBag.SchoolRefID = new SelectList(db.Schools.AsNoTracking().Select(x => new { x.SchoolID, x.SchoolName }), "SchoolID", "SchoolName", CurrentYear.SchoolRefID);
            ViewBag.AcademicYearRefID = new SelectList(db.AcademicYears.AsNoTracking().Where(sch => sch.SchoolRefID == CurrentYear.SchoolRefID).Select(x => new { x.AcademicYearID, x.DisplayYear }), "AcademicYearID", "DisplayYear", CurrentYear.AcademicYearRefID);
            ViewBag.ClassRefID = new SelectList(db.SchoolClasses.AsNoTracking().Where(sch => sch.SchoolRefID == CurrentYear.SchoolRefID).Select(x => new { x.ClassID, x.ClassName }), "ClassID", "ClassName", CurrentYear.ClassRefID);
            
            return View(studentVM);
        }
Esempio n. 2
0
        //This action uses provide editing the school for a student record
        public async Task<ActionResult> Edit(Guid? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            //get the student by id using db context
            StudentViewModel studentVM = await Task.Run(() => _service.findStudentById(id));

            if (studentVM == null)
            {
                return HttpNotFound();
            }

            //populate view model with student values retrived from db            
                       
            
            
            // A model is created just to hold a subset StudentCurrentyear Record
            // namely schoolrefid, academictyearrefid and classrefid
            StudentCurrentYearSubset CurrentYear = new StudentCurrentYearSubset();

            //This loop is nesscary as studentcurrentyear object/table may contain 
            // more than one record for student who are studying in school for 
            // more than one year, so the active flag is checked before retriving the
            // the relevant record for editing
            foreach(var studentCurrentRec in studentVM.StudentCurrentYear)
            {
                if (studentCurrentRec.Active == true)
                {   
                    CurrentYear.SchoolRefID = studentCurrentRec.SchoolRefID;
                    CurrentYear.AcademicYearRefID= studentCurrentRec.AcademicYearRefID;
                    CurrentYear.ClassRefID=studentCurrentRec.ClassRefID;
                    break;
                }
            }

            var dbc = _service.getDBContext();
            ViewBag.SchoolRefID = new SelectList(dbc.Schools.AsNoTracking().Select(x => new { x.SchoolID, x.SchoolName }), "SchoolID", "SchoolName", CurrentYear.SchoolRefID);
            ViewBag.AcademicYearRefID = new SelectList(dbc.AcademicYears.AsNoTracking().Where(sch => sch.SchoolRefID == CurrentYear.SchoolRefID).Select(x => new { x.AcademicYearID, x.DisplayYear }), "AcademicYearID", "DisplayYear", CurrentYear.AcademicYearRefID);
            ViewBag.ClassRefID = new SelectList(dbc.SchoolClasses.AsNoTracking().Where(sch => sch.SchoolRefID == CurrentYear.SchoolRefID).Select(x => new { x.ClassID, x.ClassName }), "ClassID", "ClassName", CurrentYear.ClassRefID);
            
            return View(studentVM);
        }