public async Task <IActionResult> PutStudyProcess(int id, StudyProcessViewModel studyProcess)
        {
            if (studyProcess.Id != id)
            {
                throw new Exception(string.Format("Id và id của mã quá trình học tập không giống nhau!"));
            }

            try
            {
                await Task.Run(() =>
                {
                    studyProcess.DateModified = DateTime.Now;
                    _studyProcessService.Update(studyProcess);
                    _studyProcessService.SaveChanges();
                    return(Ok());
                });
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StudyProcessExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(NoContent());
        }
        public bool Update(StudyProcessViewModel studyProcessVm)
        {
            try
            {
                var studyProcess = Mapper.Map <StudyProcessViewModel, StudyProcess>(studyProcessVm);

                _studyProcessRepository.Update(studyProcess);
                SaveChanges();

                var countInClass  = _studyProcessRepository.FindAll().Where(x => x.LanguageClassId == studyProcess.LanguageClassId && x.Status == Status.Active).ToList().Count;
                var languageClass = _languageClassRepository.FindById(studyProcess.LanguageClassId);
                int max           = languageClass.MaxNumber;

                if (countInClass < max)
                {
                    languageClass.Status = Status.Active;
                    _languageClassRepository.Update(languageClass);
                }
                else
                {
                    languageClass.Status = Status.Pause;
                    _languageClassRepository.Update(languageClass);
                }

                if (studyProcess.Status == Status.InActive)
                {
                    // lấy tên học viên
                    var hocvien    = _context.Learners.Find(studyProcess.LearnerId);
                    var tenhocvien = hocvien.FirstName + hocvien.LastName;
                    // log cho nghỉ học
                    var log = new LogSystem();
                    log.IsStudyProcessLog = true;
                    log.DateCreated       = DateTime.Now;
                    log.Content           = "Nghỉ học : " + tenhocvien;
                    log.UserId            = Const.tempUserId;
                    log.LearnerId         = studyProcess.LearnerId;
                    log.StudyProcessId    = studyProcess.Id;
                    log.ClassId           = studyProcess.LanguageClassId;
                    _context.LogSystems.Add(log);
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
 public async Task <ActionResult <StudyProcessViewModel> > PostStudyProcess(StudyProcessViewModel studyProcess)
 {
     if (studyProcess != null)
     {
         try
         {
             await Task.Run(() =>
             {
                 studyProcess.DateCreated = DateTime.Now;
                 studyProcess.Status      = Status.Active;
                 studyProcess.InDate      = DateTime.Now;
                 _studyProcessService.Add(studyProcess);
                 _studyProcessService.SaveChanges();
                 return(Ok("Thêm thành công!"));
             });
         }
         catch
         {
             throw new Exception(string.Format("Lỗi khi thêm dữ liệu"));
         }
     }
     return(CreatedAtAction("GetStudyProcess", new { id = studyProcess.Id }, studyProcess));
 }