Exemple #1
0
        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());
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        public bool Add(PeriodicPointDetailViewModel periodicPointDetailVm)
        {
            try
            {
                var periodicPointDetail = Mapper.Map <PeriodicPointDetailViewModel, PeriodicPointDetail>(periodicPointDetailVm);

                _periodicPointDetailRepository.Add(periodicPointDetail);

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Exemple #4
0
        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));
        }