public async Task <IActionResult> PutPeriodicPointDetail(int id, PeriodicPointDetailViewModel periodicPointDetail, string classId, Guid userId) { if (periodicPointDetail.Id != id) { throw new Exception(string.Format("Id và Id của giáo viên không giống nhau!")); } try { await Task.Run(() => { _periodicPointDetailService.Update(periodicPointDetail, classId, userId); _periodicPointDetailService.SaveChanges(); return(Ok("Cập nhập thành công!")); }); } catch (DbUpdateConcurrencyException) { if (!PeriodicPointDetailExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
/// <summary> /// Update thần sầu đừng hỏi vì k nhớ đâu bưởi ạ /// </summary> /// <param name="periodicPointDetailVm"></param> /// <param name="classId"></param> /// <returns></returns> public bool Update(PeriodicPointDetailViewModel periodicPointDetailVm, string classId, Guid userId) { List <PeriodicPointDetail> details = new List <PeriodicPointDetail>(); // danh sách chứa điểm của học viên từ tuần hiện tại và những tuần trc đó var periodicPointDetail = _context.PeriodicPointDetails.ToList().Where(x => x.Id == periodicPointDetailVm.Id).Single(); // tìm thằng hiện tại periodicPointDetail.DateModified = DateTime.Now; // đang xử lý test cập nhật điểm tb tổng // tìm tất cả bảng điểm của lớp đó từ tuần hiện tại trở về trc var periodicPointInClass = _periodicPointRepository.FindAll().Where(x => x.LanguageClassId == classId && x.Id <= periodicPointDetailVm.PeriodicPointId); foreach (var item in periodicPointInClass) { var PointDetail = _periodicPointDetailRepository.FindAll().Where(x => x.PeriodicPointId == item.Id && x.LearnerId == periodicPointDetailVm.LearnerId); details.AddRange(PointDetail); // điểm của thằng học viên hiện tại các tuần } // tính điểm trung bình tổng periodicPointDetail.AveragePoint = 0; foreach (var item in details) { if (item.Id != periodicPointDetail.Id) { periodicPointDetail.AveragePoint += item.Point; } } periodicPointDetail.AveragePoint = (periodicPointDetail.AveragePoint + periodicPointDetailVm.Point) / details.Count(); periodicPointDetail.Point = periodicPointDetailVm.Point; _context.PeriodicPointDetails.Update(periodicPointDetail); _context.SaveChanges(); // sắp xếp thứ tự UpdateSortIndexRange(periodicPointDetail.PeriodicPointId); _context.SaveChanges(); LogSystem logSystem = new LogSystem(); logSystem.PeriodicPointId = periodicPointDetail.PeriodicPointId; logSystem.LecturerId = _periodicPointRepository.FindById(periodicPointDetail.PeriodicPointId).LecturerId; logSystem.UserId = userId; logSystem.Content = "Cập nhật điểm định kỳ - Học viên: " + _learnerRepository.FindById(periodicPointDetail.LearnerId).FirstName + " " + _learnerRepository.FindById(periodicPointDetail.LearnerId).LastName + "- Lớp: " + _languageclassRepository.FindById(_periodicPointRepository.FindById(periodicPointDetail.PeriodicPointId).LanguageClassId).Name + "- Tuần: " + _periodicPointRepository.FindById(periodicPointDetail.PeriodicPointId).Week; logSystem.DateCreated = DateTime.Now; logSystem.DateModified = DateTime.Now; logSystem.IsManagerPointLog = true; _context.LogSystems.Add(logSystem); return(false); }
public bool Add(PeriodicPointDetailViewModel periodicPointDetailVm) { try { var periodicPointDetail = Mapper.Map <PeriodicPointDetailViewModel, PeriodicPointDetail>(periodicPointDetailVm); _periodicPointDetailRepository.Add(periodicPointDetail); return(true); } catch { return(false); } }
public async Task <ActionResult <PeriodicPointDetailViewModel> > PostPeriodicPointDetail(PeriodicPointDetailViewModel periodicPointDetail) { if (periodicPointDetail != null) { try { await Task.Run(() => { _periodicPointDetailService.Add(periodicPointDetail); _periodicPointDetailService.SaveChanges(); return(Ok("Thêm giáo viên thành công!")); }); } catch { throw new Exception(string.Format("Lỗi khi thêm dữ liệu")); } } return(CreatedAtAction("GetPeriodicPointDetails()", new { id = periodicPointDetail.Id }, periodicPointDetail)); }