public async Task <int> UpdateStudentAndSaveAsync(StudentAddEditDto dto) { var result = 0; try { var studentToUpdate = await _context.Students .FirstOrDefaultAsync(m => m.StudentId == dto.StudentId); if (studentToUpdate == null) { var errMsg = $"Record does not exist or has been deleted for StudentId={dto.StudentId}"; _logger.LogError("", errMsg); throw new GeneralException(errMsg); } studentToUpdate.LastName = dto.LastName; studentToUpdate.FirstMidName = dto.FirstMidName; studentToUpdate.EnrollmentDate = dto.EnrollmentDate; // Comment out this line to enable updating only the fields with changed values //_context.Departments.Update(courseInDb); result = await _context.SaveChangesAsync(); } catch (Exception ex) { _logger.LogError(ex, $"Failed to update Student: {dto}"); throw ex; } return(result); }
public async Task <IActionResult> PostEdit( int?id, StudentAddEditDto studentDto, [FromServices] IStudentService service) { if (!id.HasValue || id.Value != studentDto.StudentId) { return(NotFound()); } if (ModelState.IsValid) { try { await service.UpdateStudentAndSaveAsync(studentDto); TempData["Message"] = Constants.SUCCESS_MESSAGE; return(RedirectToAction(nameof(Index))); } catch (GeneralException ex) { ViewBag.HasError = true; ViewBag.Message = ex.Message; } catch (Exception ex) { ViewBag.HasError = true; ViewBag.Message = Constants.ERROR_MESSAGE_STANDARD + ": " + ex.Message; } } return(View($"{_viewFolder}Edit.cshtml", studentDto)); }
public async Task <IActionResult> Create( StudentAddEditDto student, [FromServices] IStudentService service) { if (ModelState.IsValid) { try { await service.CreateStudentAndSaveAsync(student); TempData["Message"] = Constants.SUCCESS_MESSAGE; return(RedirectToAction(nameof(Index))); } catch (Exception ex) { _logger.LogError("Error in Create: " + ex.Message); ViewBag.HasError = true; ViewBag.Message = Constants.ERROR_MESSAGE_SAVE + ": " + ex.Message; } } return(View($"{_viewFolder}Create.cshtml", student)); }
public async Task <int> CreateStudentAndSaveAsync(StudentAddEditDto dto) { int result; try { _context.Add(new Student { StudentId = dto.StudentId, LastName = dto.LastName, FirstMidName = dto.FirstMidName, EnrollmentDate = dto.EnrollmentDate }); result = await _context.SaveChangesAsync(); } catch (Exception ex) { _logger.LogError(ex, $"Failed to create new Student: {dto}"); throw ex; } return(result); }