Пример #1
0
        /// <summary>
        /// Dịch vụ đăng nhập
        /// </summary>
        /// <param name="taikhoanNV">tên tài khoản</param>
        /// <param name="mK">mật khẩu</param>
        public void DangNhap(string taikhoanNV, string mK)
        {
            _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
            if (db.tbNhanViens.Where(nv => nv.taiKhoanNV == taikhoanNV && nv.mkNV == mK).Select(nv => nv).Count() == 1)
                if (SO_dsClient_Add(taikhoanNV, _callbackClient))
                {
                    SO_ThayDoiTrangThai_NhanVien(taikhoanNV, "01");
                    _callbackClient.DangNhap_Callback(true, null, SO_Get_NhanVien(taikhoanNV), SO_Get_dsChucNang_By_taikhoanNV(taikhoanNV));

                    // Cap nhat lai danh sach nhan vien cho nhung client co chuc nang quan tri he thong
                    foreach (var active in SO_Get_dsTaiKhoanActive_By_ChucNang("CN010"))
                        foreach (var item in _dsClient)
                            if (item.Key.Equals(active))
                                item.Value.Get_dsNhanVien_Callback(SO_Get_dsNhanVien());

                    // Cap nhat lai danh sach dich vu cho nhung client co chuc kham benh va tiep nhan 00, 03, 04, 05, 06, 07

                    // Lay danh sach dich vu cua chuc nang
                    _dSChucNang.Clear();
                    _dsDichVu.Clear();
                    foreach (string tkNV in _dsClient.Keys)
                        foreach (ChucNang cn in SO_Get_dsChucNang_By_taikhoanNV(tkNV))
                            //if (!tmpDSChucNang.Contains(cn))
                            //    tmpDSChucNang.Add(cn);
                            if ((_dSChucNang.Where(cnang => cnang.MaCN == cn.MaCN).Select(cnang => cnang).Count()) == 0)
                                _dSChucNang.Add(cn);
                    foreach (ChucNang cn in _dSChucNang)
                    {
                        IEnumerable<DichVu> tmpDSDichVu = db.tbDichVus.Where(dv => dv.maCN == cn.MaCN).Select(dv => new DichVu
                        {
                            MaDV = dv.maDV,
                            TenDV = dv.tenDV,
                            MaCN = dv.maCN,
                            GiaDV = dv.giaDV ?? 0
                        });
                        foreach (DichVu dv in tmpDSDichVu)
                            if ((_dsDichVu.Where(dvu => dvu.MaDV == dv.MaDV).Select(dvu => dvu).Count()) == 0)
                                _dsDichVu.Add(dv);
                        //if (!_dsDichVu.Contains(dv))
                        //    _dsDichVu.Add(dv);
                    }

                    // Gui danh sach dv
                    string[] tmpDSClientDV = new string[] { "CN000", "CN003", "CN004", "CN005", "CN006", "CN007" };

                    foreach (string cn in tmpDSClientDV)
                        foreach (var active in SO_Get_dsTaiKhoanActive_By_ChucNang(cn))
                            foreach (var item in _dsClient)
                                if (item.Key.Equals(active))
                                    item.Value.Get_dsDichVu_By_ChucNang_Callback(_dsDichVu);
                }
                else
                    _callbackClient.DangNhap_Callback(false, "Tài khoản này đã đăng nhập vào hệ thống", null, null);
            else
                _callbackClient.DangNhap_Callback(false, "Tên tài khoản hoặc mật khẩu không chính xác", null, null);
        }
Пример #2
0
        public void Add_NhanVien(NhanVien newNhanVien, List<string> dsChucNang_newNhanVien)
        {
            _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();

            // Tao mot doi tuong tbNhanVien moi
            tbNhanVien tbNewNhanVien = new tbNhanVien();

            tbNewNhanVien.taiKhoanNV = newNhanVien.TaiKhoanNV;
            tbNewNhanVien.diaChiNV = newNhanVien.DiaChiNV;
            tbNewNhanVien.gioiTinhNV = newNhanVien.GioiTinhNV;
            tbNewNhanVien.hoVaTenDemNV = newNhanVien.HoVaTenDemNV;
            tbNewNhanVien.maTrangThaiNV = newNhanVien.MaTrangThaiNV;
            tbNewNhanVien.mkNV = newNhanVien.MkNV;
            tbNewNhanVien.ngaySinhNV = newNhanVien.NgaySinhNV;
            tbNewNhanVien.sDTNV = newNhanVien.SDTNV;
            tbNewNhanVien.tenNV = newNhanVien.TenNV;

            // Them nhan vien vao db
            db.tbNhanViens.InsertOnSubmit(tbNewNhanVien);
            db.SubmitChanges();

            // Them danh sach chuc nang cho nhan vien
            foreach (var item in dsChucNang_newNhanVien)
                if (item != null)
                {
                    tbNhanVien_ChucNang nVien_CNang = new tbNhanVien_ChucNang();
                    nVien_CNang.taiKhoanNV = newNhanVien.TaiKhoanNV;
                    nVien_CNang.maCN = item;

                    db.tbNhanVien_ChucNangs.InsertOnSubmit(nVien_CNang);
                    db.SubmitChanges();
                }

            // Gui cap nhat danh sach nhan vien cho tat ca cac client dang active va co chuc nang QLNhanVien
            foreach (var active in SO_Get_dsTaiKhoanActive_By_ChucNang("CN010"))
                foreach (var item in _dsClient)
                    if (item.Key.Equals(active))
                        item.Value.Get_dsNhanVien_Callback(SO_Get_dsNhanVien());

            // Gui Add_nhanVien_callback ve cho client invoke
            _callbackClient.Add_NhanVien_Callback(newNhanVien.TaiKhoanNV);
        }
Пример #3
0
 /// <summary>
 /// Thêm một client vào danh sách Client
 /// </summary>
 /// <param name="taikhoanNV">tên tài khoản</param>
 /// <param name="client">IQLPMCallback</param>
 /// <returns></returns>
 private bool SO_dsClient_Add(string taikhoanNV, IQLPMCallback client)
 {
     if (_dsClient.ContainsKey(taikhoanNV))
         return false;
     _dsClient.Add(taikhoanNV, client);
     return true;
 }
Пример #4
0
 public void Get_PhongKham()
 {
     _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
     _callbackClient.Get_PhongKham_Callback(db.tbThongTinPhongKhams.Select(pk => new ThongTinPhongKham
     {
         TenPK = pk.tenPK,
         SDTPK = pk.sDTPK,
         DiaChiPK = pk.diaChiPK
     }).FirstOrDefault());
 }
Пример #5
0
        public void Mod_NhanVien(NhanVien modNhanVien, List<string> dsChucNang_modNhanVien)
        {
            _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();

            // Modify thong tin cua nhan vien
            tbNhanVien tbModNhanVien = db.tbNhanViens.SingleOrDefault(nv => nv.taiKhoanNV.Equals(modNhanVien.TaiKhoanNV));

            tbModNhanVien.taiKhoanNV = modNhanVien.TaiKhoanNV;
            tbModNhanVien.diaChiNV = modNhanVien.DiaChiNV;
            tbModNhanVien.gioiTinhNV = modNhanVien.GioiTinhNV;
            tbModNhanVien.hoVaTenDemNV = modNhanVien.HoVaTenDemNV;
            tbModNhanVien.maTrangThaiNV = modNhanVien.MaTrangThaiNV;
            tbModNhanVien.mkNV = modNhanVien.MkNV;
            tbModNhanVien.ngaySinhNV = modNhanVien.NgaySinhNV;
            tbModNhanVien.sDTNV = modNhanVien.SDTNV;
            tbModNhanVien.tenNV = modNhanVien.TenNV;

            db.SubmitChanges();

            // Them danh sach chuc nang cho nhan vien
            // Gom 2 cong viec: Xoa ds chuc nang cu, them danh sach chuc nang moi

            // Xoa ds chuc nang cu
            foreach (tbNhanVien_ChucNang item in db.tbNhanVien_ChucNangs)
                if (item.taiKhoanNV.Equals(modNhanVien.TaiKhoanNV))
                {
                    db.tbNhanVien_ChucNangs.DeleteOnSubmit(item);
                    db.SubmitChanges();
                }

            // Them danh sach chuc nang moi
            foreach (var item in dsChucNang_modNhanVien)
                if (item != null)
                {
                    tbNhanVien_ChucNang nVien_CNang = new tbNhanVien_ChucNang();
                    nVien_CNang.taiKhoanNV = modNhanVien.TaiKhoanNV;
                    nVien_CNang.maCN = item;

                    db.tbNhanVien_ChucNangs.InsertOnSubmit(nVien_CNang);
                    db.SubmitChanges();
                }

            // Gui cap nhat danh sach nhan vien cho tat ca cac client dang active va co chuc nang QLNhanVien
            foreach (var active in SO_Get_dsTaiKhoanActive_By_ChucNang("CN010"))
                foreach (var item in _dsClient)
                    if (item.Key.Equals(active))
                        item.Value.Get_dsNhanVien_Callback(SO_Get_dsNhanVien());

            // Gui  Add_nhanVien_callback ve cho client invoke (callback cua mod tuong tu nhu add)
            _callbackClient.Add_NhanVien_Callback(modNhanVien.TaiKhoanNV);
        }
Пример #6
0
 public void Get_dsTrangThaiNV()
 {
     _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
     _callbackClient.Get_dsTrangThaiNV_Callback(db.tbTrangThaiNVs.Select(tt => new TrangThaiNV
         {
             MaTrangThaiNV = tt.maTrangThaiNV,
             TenTrangThaiNV = tt.tenTrangThaiNV
         }));
 }
Пример #7
0
 public void Get_dsNhanVien_By_taikhoanNV(string taikhoanNV)
 {
     _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
     _callbackClient.Get_dsNhanVien_By_taikhoanNV_Callback(db.tbNhanViens.Where(nv => nv.taiKhoanNV.Contains(System.Convert.ToString(taikhoanNV))).Select(nv => new NhanVien
     {
         TaiKhoanNV = nv.taiKhoanNV,
         MkNV = nv.mkNV,
         HoVaTenDemNV = nv.hoVaTenDemNV,
         TenNV = nv.tenNV,
         NgaySinhNV = nv.ngaySinhNV ?? DateTime.Now,
         GioiTinhNV = nv.gioiTinhNV ?? true,
         SDTNV = nv.sDTNV,
         DiaChiNV = nv.diaChiNV,
         MaTrangThaiNV = nv.maTrangThaiNV
     }));
 }
Пример #8
0
 /// <summary>
 /// Lấy danh sách tất cả nhân viên
 /// </summary>
 public void Get_dsNhanVien()
 {
     _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
     _callbackClient.Get_dsNhanVien_Callback(SO_Get_dsNhanVien());
 }
Пример #9
0
 public void Get_dsDichVu()
 {
     _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
     _callbackClient.Get_dsDichVu_By_ChucNang_Callback(_dsDichVu);
 }
Пример #10
0
 /// <summary>
 /// Lấy danh sách chức năng của một nhân viên có tài khoản là: taikhoanNV
 /// </summary>
 /// <param name="taikhoanNV">tên tài khoản</param>
 /// <returns>Danh sách chức năng</returns>
 public void Get_dsChucNang_By_taikhoanNV(string taikhoanNV)
 {
     _callbackClient = OperationContext.Current.GetCallbackChannel<IQLPMCallback>();
     _callbackClient.Get_dsChucNang_By_taikhoanNV_Callback(SO_Get_dsChucNang_By_taikhoanNV(taikhoanNV));
 }