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))); } }
// 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())); } }
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)); }
// 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)); }