public async Task <ActionResult> Edit(HttpPostedFileBase fileUpload, [Bind(Include = "MaNKH,MaNKHHoSo,HoNKH,TenNKH,GioiTinhNKH,NgaySinh,DiaChiLienHe,DienThoai,EmailLienHe,MaHocHam,MaHocVi,MaCNDaoTao,MaDonViQL,MaNgachVienChuc,NoiSinh")] NhaKhoaHoc nhaKhoaHoc)
        {
            if (ModelState.IsValid)
            {
                db.Entry(nhaKhoaHoc).State = EntityState.Modified;
                if (repo.HasFile(fileUpload))
                {
                    string mimeType   = fileUpload.ContentType;
                    Stream fileStream = fileUpload.InputStream;
                    string fileName   = Path.GetFileName(fileUpload.FileName);
                    int    fileLength = fileUpload.ContentLength;
                    byte[] fileData   = new byte[fileLength];
                    fileStream.Read(fileData, 0, fileLength);
                    nhaKhoaHoc.AnhCaNhan = fileData;
                }
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.MaCNDaoTao      = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh", nhaKhoaHoc.MaCNDaoTao);
            ViewBag.MaDonViQL       = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI", nhaKhoaHoc.MaDonViQL);
            ViewBag.MaHocHam        = new SelectList(db.HocHams, "MaHocHam", "TenHocHam", nhaKhoaHoc.MaHocHam);
            ViewBag.MaHocVi         = new SelectList(db.HocVis, "MaHocVi", "TenHocVi", nhaKhoaHoc.MaHocVi);
            ViewBag.MaNgachVienChuc = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach", nhaKhoaHoc.MaNgachVienChuc);
            return(View(nhaKhoaHoc));
        }
        public int SLuongNKH()
        {
            NhaKhoaHoc nkh   = new NhaKhoaHoc();
            var        purch = from a in db.NhaKhoaHoc
                               select a;

            return(purch.Count());
        }
        public async Task <ActionResult> DeleteConfirmed(string id)
        {
            NhaKhoaHoc nhaKhoaHoc = await db.NhaKhoaHocs.FindAsync(id);

            db.NhaKhoaHocs.Remove(nhaKhoaHoc);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public void AddRecordFromCSV(string fileName)
        {
            using (StreamReader sr = new StreamReader(fileName))
            {
                try
                {
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        string[]   resultArray;
                        NhaKhoaHoc nkh = new NhaKhoaHoc();

                        Regex r = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
                        resultArray = r.Split(line);
                        string     mankhhoso = resultArray[0];
                        NhaKhoaHoc checknkh  = db.NhaKhoaHocs.Where(p => p.MaNKHHoSo == mankhhoso).FirstOrDefault();
                        if (checknkh == null)
                        {
                            //MaNKHHoSo,HoNKH,TenNKH,GioiTinh,NgaySinh,DiaChi,DienThoai,Email,SoCMND*/
                            nkh.MaNKHHoSo    = resultArray[0];
                            nkh.HoNKH        = resultArray[1];
                            nkh.TenNKH       = resultArray[2];
                            nkh.GioiTinhNKH  = resultArray[3];
                            nkh.NgaySinh     = (resultArray[4] != "") ? Convert.ToDateTime(resultArray[4]) : DateTime.Now;
                            nkh.DiaChiLienHe = resultArray[5];
                            nkh.DienThoai    = resultArray[6];
                            nkh.EmailLienHe  = resultArray[7];
                            nkh.SoCMND       = resultArray[8];
                            nkh.NoiSinh      = resultArray[9];


                            db.NhaKhoaHocs.Add(nkh);
                            db.SaveChanges();

                            string    salt    = "".GenRandomKey(); //update by Khiet
                            NguoiDung newuser = new NguoiDung
                            {
                                MaNKH      = nkh.MaNKH,
                                Usernames  = nkh.EmailLienHe,
                                Passwords  = Encryptor.MD5Hash("12345" + salt), //update by Khiet
                                MaChucNang = 2,
                                IsActive   = true,
                                RandomKey  = salt //update by Khiet
                            };
                            db.NguoiDungs.Add(newuser);
                            db.SaveChanges();
                        }
                    }
                }
                catch (Exception exception)
                {
                    throw exception;
                }
            }
        }
        public ActionResult Login(string username, string password)
        {
            if (username != null && username != "" && password != null && password != "")
            {
                NguoiDung nguoiDung = db.NguoiDungs.SingleOrDefault(p => p.Usernames == username &&
                                                                    p.Passwords == Encryptor.MD5Hash(password + p.RandomKey));
                if (nguoiDung != null)
                {
                    NhaKhoaHoc nhaKhoaHoc = db.NhaKhoaHocs.Find(nguoiDung.MaNKH);
                    string     hovaten    = nhaKhoaHoc.HoNKH + " " + nhaKhoaHoc.TenNKH;
                    string     anhdaidien = nhaKhoaHoc.AnhCaNhan != null?string.Format("data:image/jpeg;base64,{0}", Convert.ToBase64String(nhaKhoaHoc.AnhCaNhan)) : String.Empty;;

                    // lấy tên viết tắt
                    string tenhocham = "";
                    if (db.HocHams.Find(nhaKhoaHoc.MaHocHam) != null)
                    {
                        tenhocham = db.HocHams.Find(nhaKhoaHoc.MaHocHam).TenVietTat;
                    }
                    string tenhocvi = "";
                    if (db.HocVis.Find(nhaKhoaHoc.MaHocVi) != null)
                    {
                        tenhocvi = db.HocVis.Find(nhaKhoaHoc.MaHocVi).TenVietTat;
                    }
                    string chucvi = "";
                    if (tenhocham != "" && tenhocvi != "")
                    {
                        chucvi = tenhocham + "." + tenhocvi;
                    }
                    else if (tenhocham != "" && tenhocvi == "")
                    {
                        chucvi = tenhocham + " - ";
                    }
                    else
                    {
                        chucvi = tenhocvi + " - ";
                    }

                    int machucnang          = Convert.ToInt16(nguoiDung.MaChucNang);
                    UserLoginViewModel user = UserLoginViewModel.Mapping(nhaKhoaHoc.TenNKH, nhaKhoaHoc.MaNKH, hovaten, anhdaidien, chucvi, machucnang, username);

                    Session["user"] = user;
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ViewBag.Error = "Tài khoản mật khẩu không đúng";
                    return(View());
                }
            }
            else
            {
                ViewBag.Error = "Tài khoản và mật khẩu không thể bỏ trống";
                return(View());
            }
        }
        // GET: NhaKhoaHocs/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NhaKhoaHoc nhaKhoaHoc = await db.NhaKhoaHocs.FindAsync(id);

            if (nhaKhoaHoc == null)
            {
                return(HttpNotFound());
            }

            ViewBag.MaCNDT    = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh", nhaKhoaHoc.MaCNDaoTao);
            ViewBag.MaDVQL    = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI", nhaKhoaHoc.MaDonViQL);
            ViewBag.MaHH      = new SelectList(db.HocHams, "MaHocHam", "TenHocHam", nhaKhoaHoc.MaHocHam);
            ViewBag.MaHV      = new SelectList(db.HocVis, "MaHocVi", "TenHocVi", nhaKhoaHoc.MaHocVi);
            ViewBag.MaNgachVC = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach", nhaKhoaHoc.MaNgachVienChuc);

            var lstAllTrinhDoNN = db.TrinhDoNgoaiNgus.Select(p => new
            {
                p.MaTrinhDoNN,
                TenTD = p.TenTrinhDo
            }).ToList();

            var lstTrinhDoNN = db.TrinhDoNgoaiNgus.Where(p => p.NgoaiNguNKHs.Select(nn => nn.MaNKH).Contains(nhaKhoaHoc.MaNKH)).Select(t => t.MaTrinhDoNN).ToList();

            //var lstTrinhDoNN = db.TrinhDoNgoaiNgus.Where(p => p.NhaKhoaHocs.Select(t => t.MaNKH).Contains(nhaKhoaHoc.MaNKH)).Select(p => p.MaTrinhDoNN).ToList();
            ViewBag.DSTrinhDoNgoaiNgu = new MultiSelectList(lstAllTrinhDoNN, "MaTrinhDoNN", "TenTD", lstTrinhDoNN);

            var lstAllLinhVucNC = db.LinhVucs.Select(p => new
            {
                p.MaLinhVuc,
                TenLV = p.TenLinhVuc
            });
            var lstLinhVucNC = db.LinhVucs.Where(p => p.NhaKhoaHocs.Select(t => t.MaNKH).Contains(nhaKhoaHoc.MaNKH)).Select(t => t.MaLinhVuc)
                               .ToList();

            ViewBag.DSLinhVucNghienCuu = new MultiSelectList(lstAllLinhVucNC, "MaLinhVuc", "TenLV", lstLinhVucNC);

            var lstAllChuyenMonGD = db.ChuyenMons.Select(p => new
            {
                p.MaChuyenMon,
                TenCM = p.TenChuyenMon
            });
            var lstChuyenMonGD = db.ChuyenMonNKHs.Where(p => p.MaNKH == nhaKhoaHoc.MaNKH).Select(p => p.MaChuyenMon)
                                 .ToList();

            ViewBag.DSChuyenMonGiangDay = new MultiSelectList(lstAllChuyenMonGD, "MaChuyenMon", "TenCM", lstChuyenMonGD);
            NhaKhoaHocViewModel nkh = NhaKhoaHocViewModel.Mapping(nhaKhoaHoc);

            return(View(nkh));
        }
        // GET: AdminNhaKhoaHoc/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NhaKhoaHoc nhaKhoaHoc = await db.NhaKhoaHocs.FindAsync(id);

            if (nhaKhoaHoc == null)
            {
                return(HttpNotFound());
            }
            return(View(nhaKhoaHoc));
        }
        public static NhaKhoaHocViewModel Mapping(NhaKhoaHoc nkh)
        {
            NhaKhoaHocViewModel nkhvm = new NhaKhoaHocViewModel();

            nkhvm.NgachVienChuc = nkh.NgachVienChuc ?? new NgachVienChuc();
            nkhvm.NgaySinh      = nkh.NgaySinh ?? new DateTime();
            nkhvm.HoNKH         = nkh.HoNKH ?? String.Empty;
            nkhvm.TenNKH        = nkh.TenNKH ?? String.Empty;
            nkhvm.AnhCaNhan     = nkh.AnhCaNhan != null?string.Format("data:image/jpeg;base64,{0}", Convert.ToBase64String(nkh.AnhCaNhan)) : String.Empty;

            nkhvm.DienThoai             = nkh.DienThoai ?? String.Empty;
            nkhvm.DiaChiLienHe          = nkh.DiaChiLienHe ?? String.Empty;
            nkhvm.HocHam                = nkh.HocHam ?? new HocHam();
            nkhvm.NamKetThucDaoTao      = (nkh.QuaTrinhDaoTaos.Count > 0 && nkh.QuaTrinhDaoTaos != null) ? nkh.QuaTrinhDaoTaos.Where(p => p.MaNKH == nkh.MaNKH).Max(t => t.ThoiGianKT).Value : DateTime.Now;
            nkhvm.HocVi                 = nkh.HocVi ?? new HocVi();
            nkhvm.DonViQL               = nkh.DonViQL ?? new DonViQL();
            nkhvm.MaCNDaoTao            = nkh.MaCNDaoTao;
            nkhvm.MaDonViQL             = Convert.ToInt32(nkh.MaDonViQL);
            nkhvm.EmailLienHe           = nkh.EmailLienHe ?? String.Empty;
            nkhvm.EmailThayThe          = nkh.EmailThayThe ?? String.Empty;
            nkhvm.QuaTrinhCongTacs      = nkh.QuaTrinhCongTacs ?? new List <QuaTrinhCongTac>();
            nkhvm.QuaTrinhDaoTaos       = nkh.QuaTrinhDaoTaos ?? new List <QuaTrinhDaoTao>();
            nkhvm.DSNguoiThamGiaBaiBaos = nkh.DSNguoiThamGiaBaiBaos ?? new List <DSNguoiThamGiaBaiBao>();
            nkhvm.DSNguoiThamGiaDeTais  = nkh.DSNguoiThamGiaDeTais ?? new List <DSNguoiThamGiaDeTai>();
            nkhvm.DSTacGias             = nkh.DSTacGias ?? new List <DSTacGia>();
            nkhvm.TrinhDoNgoaiNgus      = nkh.NgoaiNguNKHs.Select(p => p.TrinhDoNgoaiNgu).ToList() ?? new List <TrinhDoNgoaiNgu>();
            nkhvm.MaNKHHoSo             = nkh.MaNKHHoSo ?? String.Empty;
            nkhvm.MaHocVi               = nkh.MaHocVi ?? 0;
            nkhvm.MaHocHam              = nkh.MaHocHam ?? 0;
            nkhvm.MaNgachVienChuc       = nkh.MaNgachVienChuc ?? 0;
            nkhvm.MaNKH                 = nkh.MaNKH;
            nkhvm.ChuyenMonNKHs         = nkh.ChuyenMonNKHs ?? new List <ChuyenMonNKH>();
            nkhvm.GioiTinhNKH           = nkh.GioiTinhNKH ?? String.Empty;
            nkhvm.ChuyenNganh           = nkh.ChuyenNganh ?? new ChuyenNganh();
            nkhvm.LinhVucs              = nkh.LinhVucs ?? new List <LinhVuc>();
            nkhvm.DsBaiBao              = nkh.DSNguoiThamGiaBaiBaos.Where(p => p.MaNKH == nkh.MaNKH).Count();
            nkhvm.DsSach                = nkh.DSTacGias.Where(p => p.MaNKH == nkh.MaNKH).Count();
            nkhvm.DsDetai               = nkh.DSNguoiThamGiaBaiBaos.Where(p => p.MaNKH == nkh.MaNKH).Count();
            nkhvm.NgoaiNguNKHs          = nkh.NgoaiNguNKHs ?? new List <NgoaiNguNKH>();
            nkhvm.NganHangNKHs          = nkh.NganHangNKH ?? new NganHangNKH();
            nkhvm.NoiSinh               = nkh.NoiSinh ?? String.Empty;
            nkhvm.SoCMND                = nkh.SoCMND ?? String.Empty;
            nkhvm.NhaKhoaHoc_KH         = nkh.NhaKhoaHoc_KH ?? new NhaKhoaHoc_KH();
            nkhvm.DSPhatMinhNKHs        = nkh.DSPhatMinhNKHs ?? new List <DSPhatMinhNKH>();
            return(nkhvm);
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            NhaKhoaHoc nhaKhoaHoc = await db.NhaKhoaHocs.FindAsync(id);

            NguoiDung nguoiDung = await db.NguoiDungs.Where(p => p.Usernames == nhaKhoaHoc.MaNKHHoSo).FirstOrDefaultAsync();

            if (nguoiDung != null)
            {
                nguoiDung.MaNKH    = null;
                nguoiDung.IsActive = false;
            }


            db.NhaKhoaHocs.Remove(nhaKhoaHoc);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Create([Bind(Include = "MaNKH,MaNKHHoSo,HoNKH,TenNKH,GioiTinhNKH,NgaySinh,DiaChiLienHe,DienThoai,EmailLienHe,MaHocHam,MaHocVi,MaCNDaoTao,MaDonViQL,AnhDaiDien,MaNgachVienChuc")] NhaKhoaHoc nhaKhoaHoc)
        {
            if (ModelState.IsValid)
            {
                db.NhaKhoaHocs.Add(nhaKhoaHoc);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.MaCNDaoTao      = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh", nhaKhoaHoc.MaCNDaoTao);
            ViewBag.MaDonViQL       = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI", nhaKhoaHoc.MaDonViQL);
            ViewBag.MaHocHam        = new SelectList(db.HocHams, "MaHocHam", "TenHocHam", nhaKhoaHoc.MaHocHam);
            ViewBag.MaHocVi         = new SelectList(db.HocVis, "MaHocVi", "TenHocVi", nhaKhoaHoc.MaHocVi);
            ViewBag.MaNgachVienChuc = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach", nhaKhoaHoc.MaNgachVienChuc);

            return(View(nhaKhoaHoc));
        }
        public async Task <ActionResult> GetReport(int?id)
        {
            UserLoginViewModel user = Session["user"] as UserLoginViewModel;

            if (id == null || user == null || user.MaNKH != id)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NhaKhoaHoc nhaKhoaHoc = await db.NhaKhoaHocs.FindAsync(id);

            NhaKhoaHocViewModel nkh = NhaKhoaHocViewModel.Mapping(nhaKhoaHoc);

            if (nhaKhoaHoc == null)
            {
                return(HttpNotFound());
            }
            return(View(nkh));
        }
Example #12
0
        /// <summary>
        /// Nhap danh sach nhan vien phong
        /// </summary>
        public void Nhap()
        {
            Console.Write("Nhap so luong nhan vien: ");
            int      soLuongNhanVien = int.Parse(Console.ReadLine());
            NhanVien nhanVien        = null;

            for (int i = 0; i < soLuongNhanVien; i++)
            {
                Console.Write("Nhap nhan vien thu {0}: ", i + 1);
                int loaiNhanVien = -1;

                do
                {
                    Console.Write("1. NQL; 2. NKH; 3. NV PTN: ");
                    loaiNhanVien = int.Parse(Console.ReadLine());
                    switch (loaiNhanVien)
                    {
                    case 1:
                        nhanVien = new NhaQuanLy();
                        break;

                    case 2:
                        nhanVien = new NhaKhoaHoc();
                        break;

                    case 3:
                        nhanVien = new NhanVienPhongThiNghiem();
                        break;

                    default:
                        loaiNhanVien = -1;
                        break;
                    }

                    if (loaiNhanVien == -1)
                    {
                        Console.Write("Chon loai nhan vien!");
                    }
                } while (loaiNhanVien == -1);

                nhanVien.Nhap();
                danhSachs.Add(nhanVien);
            }
        }
        public async Task <ActionResult> Create(HttpPostedFileBase fileUpload, [Bind(Include = "MaNKH,MaNKHHoSo,HoNKH,TenNKH,GioiTinhNKH,NgaySinh,DiaChiLienHe,DienThoai,EmailLienHe,MaHocHam,MaHocVi,MaCNDaoTao,MaDonViQL,AnhDaiDien,AnhCaNhan,MaNgachVienChuc,NoiSinh")] NhaKhoaHoc nhaKhoaHoc)
        {
            if (ModelState.IsValid)
            {
                if (repo.HasFile(fileUpload))
                {
                    string mimeType   = fileUpload.ContentType;
                    Stream fileStream = fileUpload.InputStream;
                    string fileName   = Path.GetFileName(fileUpload.FileName);
                    int    fileLength = fileUpload.ContentLength;
                    byte[] fileData   = new byte[fileLength];
                    fileStream.Read(fileData, 0, fileLength);
                    nhaKhoaHoc.AnhCaNhan = fileData;
                }

                db.NhaKhoaHocs.Add(nhaKhoaHoc);
                await db.SaveChangesAsync();

                string    salt    = "".GenRandomKey(); //update by Khiet
                NguoiDung newuser = new NguoiDung
                {
                    MaNKH      = nhaKhoaHoc.MaNKH,
                    Usernames  = nhaKhoaHoc.EmailLienHe,
                    Passwords  = Encryptor.MD5Hash("12345" + salt), //update by Khiet
                    MaChucNang = 2,
                    IsActive   = true,
                    RandomKey  = salt //update by Khiet
                };
                db.NguoiDungs.Add(newuser);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }


            ViewBag.MaCNDaoTao      = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh", nhaKhoaHoc.MaCNDaoTao);
            ViewBag.MaDonViQL       = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI", nhaKhoaHoc.MaDonViQL);
            ViewBag.MaHocHam        = new SelectList(db.HocHams, "MaHocHam", "TenHocHam", nhaKhoaHoc.MaHocHam);
            ViewBag.MaHocVi         = new SelectList(db.HocVis, "MaHocVi", "TenHocVi", nhaKhoaHoc.MaHocVi);
            ViewBag.MaNgachVienChuc = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach", nhaKhoaHoc.MaNgachVienChuc);
            return(View(nhaKhoaHoc));
        }
        // GET: AdminNhaKhoaHoc/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NhaKhoaHoc nkh = await db.NhaKhoaHocs.Include(p => p.NganHangNKH).Where(p => p.MaNKH == id).FirstOrDefaultAsync();

            if (nkh == null)
            {
                return(HttpNotFound());
            }
            //NhaKhoaHocViewModel nhaKhoaHoc = NhaKhoaHocViewModel.Mapping(nkh);
            ViewBag.MaCNDaoTao      = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh", nkh.MaCNDaoTao);
            ViewBag.MaDonViQL       = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI", nkh.MaDonViQL);
            ViewBag.MaHocHam        = new SelectList(db.HocHams, "MaHocHam", "TenHocHam", nkh.MaHocHam);
            ViewBag.MaHocVi         = new SelectList(db.HocVis, "MaHocVi", "TenHocVi", nkh.MaHocVi);
            ViewBag.MaNgachVienChuc = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach", nkh.MaNgachVienChuc);
            return(View(nkh));
        }
        // GET: NhaKhoaHocs/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NhaKhoaHoc nhaKhoaHoc = await db.NhaKhoaHocs.FindAsync(id);

            if (nhaKhoaHoc == null)
            {
                return(HttpNotFound());
            }
            ViewBag.MaCNDaoTao      = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh");
            ViewBag.MaDonViQL       = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI");
            ViewBag.MaHocHam        = new SelectList(db.HocHams, "MaHocHam", "TenHocHam");
            ViewBag.MaHocVi         = new SelectList(db.HocVis, "MaHocVi", "TenHocVi");
            ViewBag.MaNgachVienChuc = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach");
            NhaKhoaHocViewModel nkh = NhaKhoaHocViewModel.Mapping(nhaKhoaHoc);

            return(View(nkh));
        }
Example #16
0
        public ActionResult SignUp(SignUpModel model)
        {
            if (model.Email != null && model.Password != "")
            {
                NguoiDung  nguoiDung = db.NguoiDungs.SingleOrDefault(p => p.Usernames == model.Email);
                NhaKhoaHoc checknkh  = db.NhaKhoaHocs.Where(p => p.EmailLienHe == model.Email).FirstOrDefault();
                if (nguoiDung != null || checknkh != null)
                {
                    ViewBag.Error = "Tài khoản đã tồn tại";
                    return(View());
                }
                NhaKhoaHoc nkh = new NhaKhoaHoc();
                nkh.HoNKH       = model.Ho;
                nkh.TenNKH      = model.Ten;
                nkh.EmailLienHe = model.Email;
                db.NhaKhoaHocs.Add(nkh);
                db.SaveChanges();

                string    salt    = "".GenRandomKey(); //update by Khiet
                NguoiDung newuser = new NguoiDung
                {
                    MaNKH      = nkh.MaNKH,
                    Usernames  = nkh.EmailLienHe,
                    Passwords  = Encryptor.MD5Hash(model.Password + salt), //update by Khiet
                    MaChucNang = 2,
                    IsActive   = true,
                    RandomKey  = salt //update by Khiet
                };
                db.NguoiDungs.Add(newuser);
                db.SaveChanges();

                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                ViewBag.Error = "Mời bạn điền đầy đủ thông tin";
                return(View());
            }
        }
        public async Task <ActionResult> Edit(HttpPostedFileBase fileUpload, List <int> DSLinhVucNC, List <int> DSChuyenMonGD, [Bind(Include = "MaNKH,MaNKHHoSo,HoNKH,TenNKH,GioiTinhNKH,NgaySinh,DiaChiLienHe,DienThoai,EmailLienHe,MaHocHam,MaHocVi,MaCNDaoTao,MaDonViQL,AnhDaiDien,MaNgachVienChuc")] NhaKhoaHoc nhaKhoaHoc, [Bind(Include = "MaNKH,STKNH,MaNH,ChiNhanhNH,GhiChu")] NganHangNKH nganHangNKH)
        {
            if (ModelState.IsValid)
            {
                // upload image
                var nhakh = db.NhaKhoaHocs.Where(p => p.MaNKH == nhaKhoaHoc.MaNKH).Include(p => p.LinhVucs).FirstOrDefault();

                if (repo.HasFile(fileUpload))
                {
                    string mimeType   = fileUpload.ContentType;
                    Stream fileStream = fileUpload.InputStream;
                    string fileName   = Path.GetFileName(fileUpload.FileName);
                    int    fileLength = fileUpload.ContentLength;
                    byte[] fileData   = new byte[fileLength];

                    fileStream.Read(fileData, 0, fileLength);
                    nhaKhoaHoc.AnhCaNhan = fileData;
                }

                db.NhaKhoaHocs.AddOrUpdate(nhaKhoaHoc);


                if (DSLinhVucNC != null)
                {
                    var deletedlinhvuc = nhakh.LinhVucs.Where(p => !DSLinhVucNC.Contains(p.MaLinhVuc)).ToList();
                    var addedlinhvuc   = DSLinhVucNC.Except(nhakh.LinhVucs.Select(p => p.MaLinhVuc)).ToList();
                    var addlinhvuc     = db.LinhVucs.Where(p => addedlinhvuc.Contains(p.MaLinhVuc)).ToList();

                    foreach (var x in deletedlinhvuc)
                    {
                        nhakh.LinhVucs.Remove(x);
                    }

                    foreach (var x in addlinhvuc)
                    {
                        nhakh.LinhVucs.Add(x);
                    }
                }
                else
                {
                    foreach (var x in nhakh.LinhVucs)
                    {
                        nhakh.LinhVucs.Remove(x);
                    }
                }

                /*
                 * if (DSTrinhDoNN != null) {
                 *  var deletednn = nhakh.NgoaiNguNKHs.Where(p => !DSTrinhDoNN.Contains(p.MaTrinhDoNN)).ToList();
                 *  var addednn = DSTrinhDoNN.Except(nhakh.NgoaiNguNKHs.Select(p => p.MaTrinhDoNN)).ToList();
                 *  var addnn = db.TrinhDoNgoaiNgus.Where(p => addednn.Contains(p.MaTrinhDoNN)).ToList();
                 *  foreach (var x in deletednn)
                 *  {
                 *      nhakh.NgoaiNguNKHs.Remove(x);
                 *  }
                 *  foreach (var x in addnn)
                 *  {
                 *      var newnn = new NgoaiNguNKH
                 *      {
                 *          MaNKH = nhakh.MaNKH,
                 *          MaTrinhDoNN = x.MaTrinhDoNN,
                 *
                 *      };
                 *      nhakh.NgoaiNguNKHs.Add(newnn);
                 *  }
                 * }
                 * else
                 * {
                 *  foreach(var x in nhakh.NgoaiNguNKHs)
                 *  {
                 *      nhakh.NgoaiNguNKHs.Remove(x);
                 *  }
                 * }      */


                if (DSChuyenMonGD != null)
                {
                    db.ChuyenMonNKHs.Where(p => p.MaNKH == nhaKhoaHoc.MaNKH).ForEach(x => db.ChuyenMonNKHs.Remove(x));
                    foreach (var item in DSChuyenMonGD)
                    {
                        ChuyenMonNKH chuyenmonNKH = new ChuyenMonNKH
                        {
                            MaNKH       = nhaKhoaHoc.MaNKH,
                            MaChuyenMon = item,
                            NgayCapNhat = DateTime.Now
                        };
                        db.ChuyenMonNKHs.Add(chuyenmonNKH);
                        db.SaveChanges();
                    }
                }

                if (nganHangNKH != null)
                {
                    db.NganHangNKHs.AddOrUpdate(nganHangNKH);
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }


            ViewBag.MaCNDaoTao      = new SelectList(db.ChuyenNganhs, "MaChuyenNganh", "TenChuyenNganh", nhaKhoaHoc.MaCNDaoTao);
            ViewBag.MaDonViQL       = new SelectList(db.DonViQLs, "MaDonVi", "TenDonVI", nhaKhoaHoc.MaDonViQL);
            ViewBag.MaHocHam        = new SelectList(db.HocHams, "MaHocHam", "TenHocHam", nhaKhoaHoc.MaHocHam);
            ViewBag.MaHocVi         = new SelectList(db.HocVis, "MaHocVi", "TenHocVi", nhaKhoaHoc.MaHocVi);
            ViewBag.MaNgachVienChuc = new SelectList(db.NgachVienChucs, "MaNgach", "TenNgach", nhaKhoaHoc.MaNgachVienChuc);
            NhaKhoaHocViewModel nkh = NhaKhoaHocViewModel.Mapping(nhaKhoaHoc);

            return(View(nkh));
        }