コード例 #1
0
        public async Task <IActionResult> Create(StudentUpsertDTO req)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var imgPath = await Utils.SaveFile(req.Image, "Student");

                    var code = await CreateCode();

                    var course = await _context.Courses.FirstOrDefaultAsync(c => c.Deleted != 1 && c.Status != 1 && c.ID == req.CourseID);

                    if (course == null)
                    {
                        TempData["Error"] = "Sorry the course you register is not available";
                        return(View(req));
                    }

                    var student = new Student
                    {
                        CourseID               = req.CourseID,
                        Status                 = (int?)StudentUpsertDTO.StudentStatus.Processing,
                        Code                   = code,
                        DOB                    = req.DOB,
                        Email                  = req.Email,
                        Gender                 = req.Gender,
                        ImageURL               = imgPath,
                        Name                   = req.Name,
                        PermanentAddress       = req.PermanentAddress,
                        PhoneNumber            = req.PhoneNumber,
                        ResidentialAddress     = req.ResidentialAddress,
                        ResponsiblePersonName  = req.ResponsiblePersonName,
                        ResponsiblePersonPhone = req.ResponsiblePersonPhone,
                        TestScore              = req.TestScore,
                        CreatedAt              = DateTime.Now,
                        UpdatedAt              = DateTime.Now
                    };
                    _context.Add(student);
                    await _context.SaveChangesAsync();

                    TempData["Success"] = MESSAGE_SUCCESS;
                    return(RedirectToAction(nameof(Index)));
                }

                req.CourseList = _context.Courses
                                 .Where(d => d.Deleted != 1 && d.StartDate <= DateTime.Now && d.EndDate >= DateTime.Now)
                                 .OrderByDescending(d => d.UpdatedAt)
                                 .Select(d => new DepartmentSelectDTO
                {
                    ID   = (int)d.ID,
                    Name = d.Name
                }).ToList();
                return(View(req));
            }
            catch (Exception ex)
            {
                TempData["Error"] = ex.Message;
                return(RedirectToAction(nameof(Index)));
            }
        }
コード例 #2
0
        // GET: Admin/Student/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            try
            {
                if (id == null)
                {
                    TempData["Error"] = MESSAGE_NOT_FOUND;
                    return(RedirectToAction(nameof(Index)));
                }

                var student = await _context.Students.FirstOrDefaultAsync(c => c.ID == id && c.Deleted != 1 && (c.Status == 1 || c.Status == 0));

                if (student == null)
                {
                    TempData["Error"] = MESSAGE_NOT_FOUND;
                    return(RedirectToAction(nameof(Index)));
                }
                var res = new StudentUpsertDTO
                {
                    CourseList = _context.Courses
                                 .Where(d => d.Deleted != 1 && d.StartDate <= DateTime.Now && d.EndDate >= DateTime.Now && d.Status != 1)
                                 .OrderByDescending(d => d.UpdatedAt)
                                 .Select(d => new DepartmentSelectDTO
                    {
                        ID   = (int)d.ID,
                        Name = $"{d.Name} - {d.Code}"
                    }).ToList(),
                    CourseID               = student.CourseID,
                    ID                     = student.ID,
                    Status                 = student.Status,
                    Code                   = student.Code,
                    DOB                    = student.DOB,
                    Email                  = student.Email,
                    Gender                 = student.Gender,
                    ImageURL               = student.ImageURL,
                    Name                   = student.Name,
                    PermanentAddress       = student.PermanentAddress,
                    PhoneNumber            = student.PhoneNumber,
                    ResidentialAddress     = student.ResidentialAddress,
                    ResponsiblePersonName  = student.ResponsiblePersonName,
                    ResponsiblePersonPhone = student.ResponsiblePersonPhone,
                    TestScore              = student.TestScore
                };
                return(View(res));
            }
            catch (Exception ex)
            {
                TempData["Error"] = ex.Message;
                return(View(new Student()));
            }
        }
コード例 #3
0
        public async Task <IActionResult> Edit(int id, StudentUpsertDTO req)
        {
            if (id != req.ID)
            {
                TempData["Error"] = MESSAGE_NOT_FOUND;
                return(RedirectToAction(nameof(Index)));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var student = await _context.Students
                                  .FirstOrDefaultAsync(s => s.Deleted != 1 && s.ID == id);

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

                    var imgPath = await Utils.SaveFile(req.Image, "Student");

                    student.Status                 = req.Status;
                    student.Code                   = req.Code;
                    student.DOB                    = req.DOB;
                    student.Email                  = req.Email;
                    student.Gender                 = req.Gender;
                    student.ImageURL               = imgPath;
                    student.Name                   = req.Name;
                    student.PermanentAddress       = req.PermanentAddress;
                    student.PhoneNumber            = req.PhoneNumber;
                    student.ResidentialAddress     = req.ResidentialAddress;
                    student.ResponsiblePersonName  = req.ResponsiblePersonName;
                    student.ResponsiblePersonPhone = req.ResponsiblePersonPhone;
                    student.TestScore              = req.TestScore;
                    student.UpdatedAt              = DateTime.Now;

                    _context.Update(req);
                    await _context.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    TempData["Error"] = ex.Message;
                    return(RedirectToAction(nameof(Index)));
                }
                TempData["Success"] = MESSAGE_SUCCESS;
                return(RedirectToAction(nameof(Index)));
            }
            return(View(req));
        }
コード例 #4
0
        // GET: Admin/Student/Create
        public IActionResult Create()
        {
            var res = new StudentUpsertDTO();

            try
            {
                res.CourseList = _context.Courses
                                 .Where(d => d.Deleted != 1 && d.StartDate <= DateTime.Now && d.EndDate >= DateTime.Now && d.Status != 1)
                                 .OrderByDescending(d => d.UpdatedAt)
                                 .Select(d => new DepartmentSelectDTO
                {
                    ID   = (int)d.ID,
                    Name = $"{d.Name} - {d.Code}"
                }).ToList();
            }
            catch (Exception ex)
            {
                TempData["Error"] = ex.Message;
            }

            return(View(res));
        }