コード例 #1
0
ファイル: HocTapService.cs プロジェクト: trunglam12/SMS
        /// <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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
ファイル: HocTapController.cs プロジェクト: trunglam12/SMS
        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 }));
            }
        }
コード例 #4
0
ファイル: HocTapService.cs プロジェクト: trunglam12/SMS
 /// <summary>
 /// delete BangDiem
 /// </summary>
 /// <param name="entity">BangDiem</param>
 public void DeleteBangDiem(BangDiemHKMH entity)
 {
     _BangDiemRepository.Delete(entity);
 }
コード例 #5
0
ファイル: HocTapService.cs プロジェクト: trunglam12/SMS
 /// <summary>
 /// update BangDiem
 /// </summary>
 /// <param name="entity">BangDiem</param>
 public void UpdateBangDiem(BangDiemHKMH entity)
 {
     _BangDiemRepository.Update(entity);
 }
コード例 #6
0
ファイル: HocTapService.cs プロジェクト: trunglam12/SMS
 /// <summary>
 /// add BangDiem
 /// </summary>
 /// <param name="entity">BangDiem</param>
 public void InsertBangDiem(BangDiemHKMH entity)
 {
     _BangDiemRepository.Insert(entity);
 }