internal static CODE_RESULT_RETURN Add(HistoryHoiVien sp )
 {
     using (var context = DBContext.GetContext())
     {
         try
         {
             var n1 = context.HistoryHoiVien.FirstOrDefault(n => n.ThoiGian == sp.ThoiGian);
             if (n1 == null)
             {
                 var hv = context.HoiVien.Find(sp.HoiVien.MaHoiVien);
                 sp.HoiVien = hv;
                 sp.IsDaInGYM = false;
                 sp.IsDaInSauna = false;
                 context.HistoryHoiVien.Add(sp);
                 context.SaveChanges();
                 return CODE_RESULT_RETURN.ThanhCong;
             }
             return CODE_RESULT_RETURN.MaTrung;
         }
         catch
         {
             return CODE_RESULT_RETURN.ThatBai;
         }
     }
 }
 public static CODE_RESULT_RETURN InPhieuCoCapNhat(HistoryHoiVien hs, bool isGYM)
 {
     try
     {
         FrmInPhieu f = new FrmInPhieu(hs, isGYM);
         using (var db = DBContext.GetContext()) {
             var oldHS = db.HistoryHoiVien.Find(hs.ThoiGian);
             if (isGYM)
             {
                 oldHS.IsDaInGYM = true;
             }
             else {
                 oldHS.IsDaInSauna = true;
             }
             db.SaveChanges();
             return CODE_RESULT_RETURN.ThanhCong;
         }
     }
     catch (Exception ex) {
         return CODE_RESULT_RETURN.ThatBai;
     }
 }
        void wipeCard()
        {
            loadDefault();
            var st = "";
            if (!string.IsNullOrEmpty(txtMa.Text))
                st = txtMa.Text.Trim();
            else
                if (hv != null)
                    st = hv.MaThe;
            var his = HistoryHoiVienController.GetHisToDay(st);
            bool checkedIn = false;
            if (his != null)
            {
                checkedIn = true;
            }

            hv = HoiVienController.GetByMaHoiVien(st);
            if (hv != null)
            {
                lblThongBao.Text = "";
                //kiem tra gym
                if (hv.NgayHetHanGYM > DateTime.Now)
                {
                    validCardGYM = KetQuaCheckin.TheHopLe;

                }
                if (hv.NgayHetHanSauNa > DateTime.Now)
                {
                    validCardSauna = KetQuaCheckin.TheHopLe;

                }
                var hs = new HistoryHoiVien()
                {
                    HoiVien = hv,
                    ThoiGian = DateTime.Now,
                    IsDaInGYM = false,
                    IsDaInSauna = false
                };
                txtMa.Text = "";
                if (!checkedIn)
                {
                    if (HistoryHoiVienController.Add(hs) == CODE_RESULT_RETURN.ThanhCong)
                    {
                        lblThongBao.Text = "Checkin thành công";
                    }
                    else
                    {
                        DialogUtils.ShowError("Có lỗi khi checkin");
                    }
                }
                else
                {
                    lblThongBao.Text = "Hội viên này đã checkin";
                }
                loadData();

            }
            else
            {
                lblThongBao.Text = "Không tồn tại mã thẻ này";
                loadDefault();
            }
        }
        void inPhieu(bool isGYM)
        {
            if (dgrDangKy.SelectedRows.Count > 0)
            {
                var hv = (HoiVien)dgrDangKy.SelectedRows[0].DataBoundItem;
                if (isGYM && hv.NgayHetHanGYM.Date <= DateTime.Now.Date) {
                    DialogUtils.ShowMessage("Thẻ này đã hết hạn GYM");
                    return;
                }
                else if (!isGYM && hv.NgayHetHanSauNa.Date <= DateTime.Now.Date)
                {
                    DialogUtils.ShowMessage("Thẻ này đã hết hạn Sauna");
                    return;
                }
                HistoryHoiVien hs = new HistoryHoiVien() {

                };
                FrmInPhieu f = new FrmInPhieu(hv, isGYM);
                //f.ShowDialog();
            }
        }
        void wipeCard()
        {
            bool validCard = false;

            loadDefault();
            var st = txtMa.Text;
            hv = HoiVienController.CheckIn(txtMa.Text, isGYM);
            if (hv != null)
            {
                #region GYM
                if (isGYM)
                {
                    if (hv.NgayHetHanGYM > DateTime.Now)
                    {
                        validCard = true;
                        var hs = new HistoryHoiVien()
                        {
                            HoiVien = hv,
                            IsSauna = !isGYM,
                            ThoiGian = DateTime.Now
                        };
                        HistoryHoiVienController.Add(hs);
                        MessageBox.Show("Checkin thành công");
                    }
                    loadData();
                    if (validCard)
                    {
                        lblKetQua.ForeColor = Color.Green;
                        lblKetQua.Text = "Thẻ hợp lệ";
                        var delta = Convert.ToInt32(Math.Ceiling((hv.NgayHetHanGYM - DateTime.Now).TotalDays));
                        if (delta <= 7)
                        {
                            lblThongBao.Visible = true;
                            lblThongBao.ForeColor = Color.Purple;
                            lblThongBao.Text = "Còn " + delta + " ngày là hết hạn";
                        }
                    }
                    else
                    {
                        lblKetQua.ForeColor = Color.Red;
                        lblKetQua.Text = "Thẻ đã hết hạn";
                    }

                }
                #endregion GYM
                #region SAUNA
                else
                {
                    if (hv != null)
                    {

                        if (hv.NgayHetHanSauNa > DateTime.Now)
                        {
                            validCard = true;
                            var hs = new HistoryHoiVien() {
                                HoiVien = hv,
                                IsSauna = !isGYM,
                                ThoiGian = DateTime.Now
                            };
                            HistoryHoiVienController.Add(hs);
                            MessageBox.Show("Checkin thành công");
                        }
                        loadData();
                        if (validCard)
                        {
                            lblKetQua.ForeColor = Color.Green;
                            lblKetQua.Text = "Thẻ hợp lệ";
                            var delta = Convert.ToInt32(Math.Ceiling((hv.NgayHetHanSauNa - DateTime.Now).TotalDays));
                            if (delta <= 7)
                            {
                                lblThongBao.Visible = true;
                                lblThongBao.ForeColor = Color.Purple;
                                lblThongBao.Text = "Còn " + delta + " ngày là hết hạn";
                            }

                        }
                        else
                        {
                            lblKetQua.ForeColor = Color.Red;
                            lblKetQua.Text = "Thẻ đã hết hạn";
                        }

                    }
                    else
                    {
                        lblKetQua.ForeColor = Color.Red;
                        lblKetQua.Text = "Không có tài khoản này";
                    }
                #endregion SAUNA
                    if (hv != null)
                    {
                        lblTen.Text = hv.TenHoiVien;
                    }
                    else lblTen.Text = "";
                }
            }
            else {
                lblKetQua.ForeColor = Color.Red;
                lblKetQua.Text = "Không có tài khoản này";
            }
        }