Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }