/// <summary> /// get BangDiem by id /// </summary> /// <returns>list BangDiem</returns> public BangDiemHKMH GetBangDiemByID(int id) { BangDiemHKMH bangDiem = _BangDiemRepository.Entities.Find(id); _BangDiemRepository.DbContext.Entry(bangDiem).Collection(m => m.dsCotDiem).Load(); foreach (CotDiem cotDiem in bangDiem.dsCotDiem) { _CotDiemRepository.DbContext.Entry(cotDiem).Reference(m => m.LoaiDiem).Load(); } return(bangDiem); }
public BangDiemViewModel(BangDiemHKMH bangDiem, string tenHocSinh, int maLop) { MaBangDiem = bangDiem.MaBangDiem; MaHocSinh = bangDiem.MaHocSinh; TenHocSinh = tenHocSinh; MaMonHoc = bangDiem.MaMonHoc; MaLop = maLop; //count variable to fill in when student dont have diem int countMieng = 0; int count15 = 0; int count1T = 0; int countHK = 0; foreach (CotDiem cotDiem in bangDiem.dsCotDiem) { //Diem mieng id = 1 if (cotDiem.LoaiDiem.MaLoaiDiem == 1 && countMieng < 2) { if (countMieng == 0) { MaDiemMieng_1 = cotDiem.MaCotDiem; DiemMieng_1 = cotDiem.GiaTri; } else { MaDiemMieng_2 = cotDiem.MaCotDiem; DiemMieng_2 = cotDiem.GiaTri; } countMieng++; } //Diem 15' id = 3 if (cotDiem.LoaiDiem.MaLoaiDiem == 2 && count15 < 2) { if (count15 == 0) { MaDiem15_1 = cotDiem.MaCotDiem; Diem15_1 = cotDiem.GiaTri; } else { MaDiem15_2 = cotDiem.MaCotDiem; Diem15_2 = cotDiem.GiaTri; } count15++; } //Diem 1t id = 3 if (cotDiem.LoaiDiem.MaLoaiDiem == 3 && count1T < 2) { if (count1T == 0) { MaDiem1T_1 = cotDiem.MaCotDiem; Diem1T_1 = cotDiem.GiaTri; } else { MaDiem1T_2 = cotDiem.MaCotDiem; Diem1T_2 = cotDiem.GiaTri; } count1T++; } //Diem HK id = 4 if (cotDiem.LoaiDiem.MaLoaiDiem == 4 && countHK < 1) { MaDiemHK = cotDiem.MaCotDiem; DiemHK = cotDiem.GiaTri; countHK++; } } //fill fake ViewModel for table for (int i = 0; i < 2 - countMieng; i++) { if (i == 0) { MaDiemMieng_2 = -1; DiemMieng_2 = null; } else { MaDiemMieng_1 = -1; DiemMieng_1 = null; } } //fill fake ViewModel for table //mieng for (int i = 0; i < 2 - countMieng; i++) { if (i == 0) { MaDiemMieng_2 = -1; DiemMieng_2 = null; } else { MaDiemMieng_1 = -1; DiemMieng_1 = null; } } //15' for (int i = 0; i < 2 - count15; i++) { if (i == 0) { MaDiem15_2 = -1; Diem15_2 = null; } else { MaDiem15_1 = -1; Diem15_1 = null; } } //1 tiet for (int i = 0; i < 2 - count1T; i++) { if (i == 0) { MaDiem1T_2 = -1; Diem1T_2 = null; } else { MaDiem1T_1 = -1; Diem1T_1 = null; } } //1 tiet for (int i = 0; i < 1 - countHK; i++) { MaDiemHK = -1; DiemHK = null; } DiemTrungBinh = bangDiem.DiemTB; }
public JsonResult UpdateBangDiem(string models, int idNam, string idHocKy) { try { var viewModels = JsonConvert.DeserializeObject <IEnumerable <BangDiemViewModel> >(models); IEnumerable <LoaiDiem> listLoaiDiem = _HocTapService.GetAllLoaiDiem(); //loai diem phai ton tai truoc LoaiDiem loaiDiemMieng = listLoaiDiem.Where(m => m.TenLoaiDiem == "Điểm Miệng").FirstOrDefault(); LoaiDiem loaiDiem15 = listLoaiDiem.Where(m => m.TenLoaiDiem == "Điểm 15'").FirstOrDefault(); LoaiDiem loaiDiem1T = listLoaiDiem.Where(m => m.TenLoaiDiem == "Điểm 1 Tiết").FirstOrDefault(); LoaiDiem loaiDiemHK = listLoaiDiem.Where(m => m.TenLoaiDiem == "Điểm Học Kỳ").FirstOrDefault(); foreach (BangDiemViewModel model in viewModels) { List <CotDiem> listCotDiemTemp = new List <CotDiem>(); //store for calculate dtb //normal case, BangDiem already exist if (model.MaBangDiem > 0) { BangDiemHKMH bangDiem = _HocTapService.GetBangDiemByID(model.MaBangDiem); //Mieng 1 if (model.MaDiemMieng_1 != -1) { if (model.DiemMieng_1 != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiemMieng_1); cotDiem.GiaTri = (float)model.DiemMieng_1; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiemMieng_1); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiemMieng_1 == -1 && model.DiemMieng_1 != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.DiemMieng_1; cotDiem.LoaiDiem = loaiDiemMieng; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } //Mieng 2 if (model.MaDiemMieng_2 != -1) { if (model.DiemMieng_2 != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiemMieng_2); cotDiem.GiaTri = (float)model.DiemMieng_2; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiemMieng_2); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiemMieng_2 == -1 && model.DiemMieng_2 != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.DiemMieng_2; cotDiem.LoaiDiem = loaiDiemMieng; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } //15' 1 if (model.MaDiem15_1 != -1) { if (model.Diem15_1 != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem15_1); cotDiem.GiaTri = (float)model.Diem15_1; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem15_1); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiem15_1 == -1 && model.Diem15_1 != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.Diem15_1; cotDiem.LoaiDiem = loaiDiem15; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } //15' 2 if (model.MaDiem15_2 != -1) { if (model.Diem15_2 != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem15_2); cotDiem.GiaTri = (float)model.Diem15_2; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem15_2); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiem15_2 == -1 && model.Diem15_2 != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.Diem15_2; cotDiem.LoaiDiem = loaiDiem15; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } //1 Tiet 1 if (model.MaDiem1T_1 != -1) { if (model.Diem1T_1 != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem1T_1); cotDiem.GiaTri = (float)model.Diem1T_1; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem1T_1); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiem1T_1 == -1 && model.Diem1T_1 != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.Diem1T_1; cotDiem.LoaiDiem = loaiDiem1T; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } //1 Tiet 2 if (model.MaDiem1T_2 != -1) { if (model.Diem1T_2 != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem1T_2); cotDiem.GiaTri = (float)model.Diem1T_2; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiem1T_2); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiem1T_2 == -1 && model.Diem1T_2 != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.Diem1T_2; cotDiem.LoaiDiem = loaiDiem1T; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = model.MaBangDiem; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } //Hoc ky if (model.MaDiemHK != -1) { if (model.DiemHK != null) { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiemHK); cotDiem.GiaTri = (float)model.DiemHK; _HocTapService.UpdateCotDiem(cotDiem); } else { CotDiem cotDiem = _HocTapService.GetCotDiemByID(model.MaDiemHK); _HocTapService.DeleteCotDiem(cotDiem); } } else { if (model.MaDiemHK == -1 && model.DiemHK != null) { CotDiem cotDiem = new CotDiem(); cotDiem.GiaTri = (float)model.DiemHK; cotDiem.LoaiDiem = loaiDiemHK; cotDiem.TenCotDiem = "cot diem"; cotDiem.MaBangDiem = bangDiem.MaBangDiem; _HocTapService.InsertCotDiem(cotDiem); listCotDiemTemp.Add(cotDiem); } } bangDiem = _HocTapService.GetBangDiemByID(model.MaBangDiem); float sumDiem = 0; float sumHeSo = 0; foreach (CotDiem cotDiem in bangDiem.dsCotDiem) { sumDiem += cotDiem.GiaTri * cotDiem.LoaiDiem.HeSo; sumHeSo += cotDiem.LoaiDiem.HeSo; } bangDiem.DiemTB = sumDiem / sumHeSo; _HocTapService.UpdateBangDiem(bangDiem); model.DiemTrungBinh = bangDiem.DiemTB; } else //bang diem moi { BangDiemHKMH bangDiem = new BangDiemHKMH(); bangDiem.MaHocKy = idHocKy; bangDiem.MaHocSinh = model.MaHocSinh; bangDiem.MaMonHoc = model.MaMonHoc; bangDiem.MaNamHoc = idNam; bangDiem.DiemTB = 0; _HocTapService.InsertBangDiem(bangDiem); //mieng 1 if (model.DiemMieng_1 != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.DiemMieng_1, LoaiDiem = loaiDiemMieng, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } //1 tiet 1 if (model.DiemMieng_2 != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.DiemMieng_2, LoaiDiem = loaiDiemMieng, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } //15' 1 if (model.Diem15_1 != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.Diem15_1, LoaiDiem = loaiDiem15, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } //15' 2 if (model.Diem15_2 != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.Diem15_2, LoaiDiem = loaiDiem15, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } //1 tiet 1 if (model.Diem1T_1 != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.Diem1T_1, LoaiDiem = loaiDiem1T, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } //1 tiet 2 if (model.Diem1T_2 != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.Diem1T_2, LoaiDiem = loaiDiem1T, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } //hk if (model.DiemHK != null) { listCotDiemTemp.Add(new CotDiem() { GiaTri = (float)model.DiemHK, LoaiDiem = loaiDiemHK, TenCotDiem = "cot diem", MaBangDiem = bangDiem.MaBangDiem }); } float sumDiem = 0; float sumHeSo = 0; foreach (CotDiem cotDiem in listCotDiemTemp) { sumDiem += cotDiem.GiaTri * cotDiem.LoaiDiem.HeSo; sumHeSo += cotDiem.LoaiDiem.HeSo; } bangDiem.DiemTB = sumDiem / sumHeSo; _HocTapService.InsertCotDiem(listCotDiemTemp); _HocTapService.UpdateBangDiem(bangDiem); model.DiemTrungBinh = bangDiem.DiemTB; model.MaBangDiem = bangDiem.MaBangDiem; } } return(Json(viewModels)); } catch (Exception e) { return(Json(new { error = e.Message })); } }
/// <summary> /// delete BangDiem /// </summary> /// <param name="entity">BangDiem</param> public void DeleteBangDiem(BangDiemHKMH entity) { _BangDiemRepository.Delete(entity); }
/// <summary> /// update BangDiem /// </summary> /// <param name="entity">BangDiem</param> public void UpdateBangDiem(BangDiemHKMH entity) { _BangDiemRepository.Update(entity); }
/// <summary> /// add BangDiem /// </summary> /// <param name="entity">BangDiem</param> public void InsertBangDiem(BangDiemHKMH entity) { _BangDiemRepository.Insert(entity); }