Esempio n. 1
0
        public ActionResult MuaNgay(int?id)
        {
            using (var ctx = new QLDauGiaEntities())
            {
                //lấy tài khoản mua
                var tk = CurrentContext.GetCurUser();

                //lấy sản phẩm
                var sp = ctx.DauGia
                         .Where(dg => dg.ID == id)
                         .FirstOrDefault();

                sp.ID_NguoiGiuGia    = tk.ID;
                sp.GiaCaoNhatHienTai = sp.GiaMuaNgay;
                sp.NgayKetThuc       = DateTime.Now.AddSeconds(-1);


                //gửi mail
                CurrentContext.SendMail(tk.Email, $"Chúc mừng bạn đã mua được sản phẩm! Sản phẩm: {sp.Ten}");
                CurrentContext.SendMail(ctx.TaiKhoan.Where(tkk => tkk.ID == sp.ID_NguoiDauGia).FirstOrDefault().Email, $"Đã có người mua ngay sản phẩm của bạn! Sản phẩm: {sp.Ten}");
                sp.GuiMailThatBai = true;
                ctx.SaveChanges();

                var ct = ctx.ChiTietDauGia.Add(new ChiTietDauGia()
                {
                    GiaGanNhat = sp.GiaMuaNgay, ID_DauGia = id.Value, ID_TaiKhoanThamGiaDauGia = tk.ID, NgayThamGiaDauGiaGanNhat = DateTime.Now
                });

                ctx.SaveChanges();

                return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Bạn đã mua thành công" }));
            }
        }
Esempio n. 2
0
        public ActionResult Them(DauGia dg, List <HttpPostedFileBase> anhchitiet, HttpPostedFileBase anhdaidien, int?SoNgay)
        {
            if (CurrentContext.GetCurUser().Vip != true)
            {
                return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Bạn không có quyền đăng bán!" }));
            }
            using (var ctx = new QLDauGiaEntities())
            {
                var ds = ctx.DauGia
                         .Add(dg);
                ds.NgayBatDau     = DateTime.Now;
                ds.NgayKetThuc    = ds.NgayBatDau.Value.AddDays(SoNgay.Value);
                ds.SoLuongHinh    = anhchitiet.Count();
                ds.ID_NguoiDauGia = CurrentContext.GetCurUser().ID;
                ctx.SaveChanges();

                //tạo folder chứa hình [~/asets/images/DauGia/{ID}]
                string spDirPath     = Server.MapPath($"~/assets/images/DauGia");
                string targetDirPath = Path.Combine(spDirPath, ds.ID.ToString());
                Directory.CreateDirectory(targetDirPath);

                //copy hình đại diện
                string daidien = Path.Combine(targetDirPath, $"daidien.jpg");
                anhdaidien.SaveAs(daidien);

                //copy hình đại diện
                for (int i = 0; i < ds.SoLuongHinh; i++)
                {
                    string thumbs = Path.Combine(targetDirPath, $"{i + 1}.jpg");
                    anhchitiet[i].SaveAs(thumbs);
                }

                return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Đăng sản phẩm đấu giá thành công!" }));
            }
        }
Esempio n. 3
0
        public ActionResult QuenMatKhau(ResetPassVM resetModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    using (var ctx = new QLDauGiaEntities())
                    {
                        TaiKhoan mtk = ctx.TaiKhoan.Where(t => t.TenDangNhap == resetModel.UserName && t.Email == resetModel.Email).FirstOrDefault();
                        mtk.ResetPass = true;

                        ctx.Entry(mtk).State = System.Data.Entity.EntityState.Modified;
                        ctx.SaveChanges();
                        return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Yêu cầu của bạn đã được ghi nhận! Vui lòng chờ quản trị xác nhận! Hãy kiểm tra mail thường xuyên để lấy lại mật khẩu" }));
                    }
                }
                catch (Exception)
                {
                    return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Xin cấp lại mật khẩu thất bại! Vui lòng thử lại!" }));
                }
            }
            else
            {
                return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Mã xác nhận sai! Vui lòng thử lại!" }));
            }
        }
Esempio n. 4
0
        public ActionResult EditThongTin(EditUserVM tk)
        {
            try
            {
                using (var ctx = new QLDauGiaEntities())
                {
                    TaiKhoan mtk = ctx.TaiKhoan.Where(t => t.ID == tk.ID).FirstOrDefault();
                    mtk.TenDangNhap = tk.TenDangNhap;
                    mtk.HoTen       = tk.HoTen;
                    mtk.SoDienThoai = tk.SoDienThoai;
                    mtk.Email       = tk.Email;
                    mtk.NgaySinh    = DateTime.ParseExact(tk.NgaySinh, "dd/MM/yyyy", null);
                    mtk.DiaChi      = tk.DiaChi;

                    ctx.Entry(mtk).State = System.Data.Entity.EntityState.Modified;
                    ctx.SaveChanges();
                }
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Chỉnh sửa thông tin không thành công! Vui lòng thử lại!" }));
            }

            return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Vui lòng đăng nhập lại để cập nhật sự thay đổi!" }));
        }
Esempio n. 5
0
 public ActionResult Add(DanhMucLon model)
 {
     using (var ctx = new QLDauGiaEntities())
     {
         ctx.DanhMucLon.Add(model);
         ctx.SaveChanges();
     }
     return(View());
 }
Esempio n. 6
0
 public ActionResult Update(DanhMucLon model)
 {
     using (var ctx = new QLDauGiaEntities())
     {
         ctx.Entry(model).State =
             System.Data.Entity.EntityState.Modified;
         ctx.SaveChanges();
     }
     return(RedirectToAction("XuatDanhMuc", "DanhMuc"));
 }
Esempio n. 7
0
 public ActionResult Delete(int idToDelete)
 {
     using (var ctx = new QLDauGiaEntities())
     {
         DanhMucLon model = ctx.DanhMucLon
                            .Where(c => c.ID == idToDelete)
                            .FirstOrDefault();
         model.TinhTrang = true;
         ctx.SaveChanges();
     }
     return(RedirectToAction("XuatDanhMuc", "DanhMuc"));
 }
Esempio n. 8
0
        public ActionResult Register(RegisterVM regModel)
        {
            Boolean mess;

            if (ModelState.IsValid)
            {
                try
                {
                    TaiKhoan u = new TaiKhoan
                    {
                        TenDangNhap = regModel.UserName,
                        HoTen       = regModel.Name,
                        SoDienThoai = regModel.NumPhone,
                        Email       = regModel.Email,
                        MatKhau     = StringUtils.GetMD5(regModel.RawPWD),
                        NgaySinh    = DateTime.ParseExact(regModel.DOB, "dd/MM/yyyy", null),
                        DiaChi      = regModel.Address,
                        Diem        = 0,
                        DanhGiaTot  = 0,
                        DanhGiaXau  = 0,
                        Quyen       = false,
                        Vip         = false,
                        TonTai      = true,
                    };
                    using (QLDauGiaEntities ctx = new QLDauGiaEntities())
                    {
                        var tktrung = ctx.TaiKhoan.Where(tt => String.Compare(tt.Email, u.Email) == 0 || String.Compare(tt.TenDangNhap, u.TenDangNhap) == 0)
                                      .ToList();

                        if (tktrung.Count == 0)
                        {
                            mess = true;
                            ctx.TaiKhoan.Add(u);
                            ctx.SaveChanges();
                        }
                        else
                        {
                            mess = false;
                        }
                    }
                }
                catch (Exception)
                {
                    mess = false;
                }
            }
            else
            {
                mess = false;
            }
            ViewBag.Mess = mess;
            return(View());
        }
        public ActionResult Index(int?id)
        {
            string thongbao = "";
            int    slyt     = 0;

            var tk = CurrentContext.GetCurUser();

            if (tk == null)
            {
                thongbao = "Bạn chưa đăng nhập! Vui lòng đăng nhập hoặc đăng ký mới để sử dụng được tính năng này";
            }

            else if (id.HasValue == false)
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }

            else
            {
                using (var ctx = new QLDauGiaEntities())
                {
                    var exists = ctx.YeuThich
                                 .Where(yt => yt.ID_DauGia == id && yt.ID_NguoiThich == tk.ID)
                                 .FirstOrDefault();
                    slyt = ctx.YeuThich
                           .Where(yt => yt.ID_NguoiThich == tk.ID)
                           .Count();

                    if (exists != null)
                    {
                        thongbao = "Sản phẩm đã nằm trong danh sách yêu thích của bạn! Vui lòng kiểm tra lại";
                    }
                    else
                    {
                        ctx.YeuThich.Add(new YeuThich()
                        {
                            ID_DauGia     = id,
                            ID_NguoiThich = tk.ID
                        });
                        ctx.SaveChanges();

                        thongbao = "Xin chức mừng! Bạn đã thêm thành công!";
                        slyt++;
                    }
                }
            }
            var kq = new { tb = thongbao, sl = slyt };

            return(Json(kq, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ResetPass(int?id)
        {
            string tb = "Reset mật khẩu người dùng thành công!";

            using (var ctx = new QLDauGiaEntities())
            {
                TaiKhoan mtk = ctx.TaiKhoan.Where(t => t.ID == id).FirstOrDefault();
                mtk.ResetPass = false;
                mtk.MatKhau   = StringUtils.GetMD5("000000");

                ctx.Entry(mtk).State = System.Data.Entity.EntityState.Modified;
                ctx.SaveChanges();
                var kq = new { tb = tb };

                CurrentContext.SendMail(mtk.Email, "Tài khoản của bạn đã được reset thành công! Mật khẩu mới là: 000000");
                return(Json(kq, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 11
0
        public ActionResult XinBan(int userID)
        {
            try
            {
                using (var ctx = new QLDauGiaEntities())
                {
                    TaiKhoan mtk = ctx.TaiKhoan.Where(t => t.ID == userID).FirstOrDefault();
                    mtk.ThoiGianXinBan = DateTime.Now;

                    ctx.Entry(mtk).State = System.Data.Entity.EntityState.Modified;
                    ctx.SaveChanges();
                    return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Xin quyền đăng bán sản phẩm thành công! Vui lòng chờ quản trị xác nhận!" }));
                }
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "ThongBao", new { ThongBao = "Xin quyền đăng bán thất bại! Vui lòng thử lại!" }));
            }
        }
Esempio n. 12
0
        public ActionResult CapNhatMoTaDayDu(int id_daugia, string motadaydu)
        {
            using (var ctx = new QLDauGiaEntities())
            {
                var date = DateTime.Now;
                var dsdg = ctx.DauGia
                           .Where(dg => dg.ID == id_daugia)
                           .FirstOrDefault();
                dsdg.MoTaDayDu += "&lt;br&gt;";
                var kq = "Cập nhật " + date.ToString(string.Format("(dd/MM/yyyy, HH:mm:ss)")) + ":";
                kq += "&lt;br&gt;";
                kq += motadaydu;

                var kq2 = "" + "<br/>" + "Cập nhật " + date.ToString(string.Format("(dd/MM/yyyy, HH:mm:ss)")) + ":" + "<br/>" + motadaydu;
                dsdg.MoTaDayDu += kq;
                ctx.SaveChanges();

                return(Json(kq2, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 13
0
        public ActionResult ChangePassword(ChangePassVM chgPasModel)
        {
            Boolean mess;

            if (ModelState.IsValid)
            {
                try
                {
                    TaiKhoan mAcc    = CurrentContext.GetCurUser();
                    string   passOld = StringUtils.GetMD5(chgPasModel.RawPWDOld);
                    if (passOld.Equals(mAcc.MatKhau))
                    {
                        mAcc.MatKhau = StringUtils.GetMD5(chgPasModel.RawPWDNew);

                        using (var ctx = new QLDauGiaEntities())
                        {
                            ctx.Entry(mAcc).State = System.Data.Entity.EntityState.Modified;
                            ctx.SaveChanges();
                        }
                        mess = true;
                    }
                    else
                    {
                        mess = false;
                    }
                }
                catch (Exception)
                {
                    mess = false;
                }
            }
            else
            {
                mess = false;
            }
            ViewBag.Mess = mess;
            return(View());
        }
        public ActionResult DeleteUser(TaiKhoan tk)
        {
            Boolean mess;

            try
            {
                using (var ctx = new QLDauGiaEntities())
                {
                    TaiKhoan mtk = ctx.TaiKhoan.Where(t => t.ID == tk.ID).FirstOrDefault();
                    mtk.TonTai = false;

                    ctx.Entry(mtk).State = System.Data.Entity.EntityState.Modified;
                    ctx.SaveChanges();
                }
                mess = true;
            }
            catch (Exception)
            {
                mess = false;
            }

            ViewBag.Mess = mess;
            return(View(tk));
        }
Esempio n. 15
0
        public ActionResult DatGia(ChiTietDauGia ctdg)
        {
            using (var ctx = new QLDauGiaEntities())
            {
                //lấy sản phẩm đấu giá
                var dg = ctx.DauGia
                         .Where(dgd => dgd.ID == ctdg.ID_DauGia)
                         .FirstOrDefault();

                string thongbao = "";
                int    ID       = CurrentContext.GetCurUser().ID;

                if (ctx.ChiTietDauGia.Count() != 0)
                {
                    //kiểm tra tài khoản đang muốn đặt giá có bị cấm k
                    var tkhientai = ctx.ChiTietDauGia
                                    .Where(ctd => ctd.ID_DauGia == dg.ID && ctd.ID_TaiKhoanThamGiaDauGia == ID)
                                    .FirstOrDefault();
                    if (tkhientai != null)
                    {
                        if (tkhientai.BiCam == true)
                        {
                            thongbao = "Bạn đã bị cấm khỏi phiên đấu giá này!";
                            return(RedirectToAction("Index", "ThongBao", new { ThongBao = thongbao }));
                        }
                    }
                }


                var tkyeucau = ctx.TaiKhoan
                               .Where(ttk => ttk.ID == ID)
                               .FirstOrDefault();

                if (dg.YeuCauDanhGia > ((tkyeucau.DanhGiaTot * 1.0 * 100) / (tkyeucau.DanhGiaTot + tkyeucau.DanhGiaXau)) || (tkyeucau.DanhGiaTot + tkyeucau.DanhGiaXau) == 0)
                {
                    thongbao = "Bạn không đáp ứng được yêu cầu tối thiểu để tham gia đặt giá! Vui lòng kiểm tra lại";
                }
                else if (dg.ID_NguoiGiuGia == null)
                {
                    ctdg.ID_TaiKhoanThamGiaDauGia = ID;
                    dg.ID_NguoiGiuGia             = ctdg.ID_TaiKhoanThamGiaDauGia;
                    dg.GiaCaoNhatHienTai          = dg.GiaKhoiDiem;
                    ctx.SaveChanges();


                    ctdg.NgayThamGiaDauGiaGanNhat = DateTime.Now;
                    ctdg.GiaHienTaiLucDat         = dg.GiaKhoiDiem;
                    ctx.ChiTietDauGia.Add(ctdg);
                    ctx.SaveChanges();
                    thongbao = "Đặt giá thành công! Chúc mừng bạn là người đang giữ giá";

                    //gửi mail người yêu cầu
                    CurrentContext.SendMail(tkyeucau.Email, "Chúc mừng bạn đặt giá thành công! Sản phẩm: " + dg.Ten);

                    //gửi mail người bán
                    var nguoiban = ctx.TaiKhoan
                                   .Where(tkk => tkk.ID == dg.ID_NguoiDauGia)
                                   .FirstOrDefault();

                    CurrentContext.SendMail(nguoiban.Email, "Sản phẩm của bạn có người mới đấu giá thành công! Sản phẩm: " + dg.Ten);

                    //gia hạn tự động nếu có đăng ký chức năng này
                    if (dg.GiaHanTuDong == true && DateTime.Now.AddMinutes(-5) <= dg.NgayKetThuc.Value)
                    {
                        dg.NgayKetThuc.Value.AddMinutes(10);
                        ctx.SaveChanges();
                    }
                }
                else
                {
                    //lấy giá của người đang giữ giá
                    var tk = ctx.ChiTietDauGia
                             .Where(tkc => tkc.ID_TaiKhoanThamGiaDauGia == dg.ID_NguoiGiuGia && tkc.ID_DauGia == dg.ID)
                             .Max(tkc => tkc.GiaGanNhat);



                    int kq = DauGiaOK(dg.BuocNhay.Value, dg.GiaCaoNhatHienTai.Value, ctdg.GiaGanNhat.Value, tk.Value);


                    //kiểm tra
                    if (kq == 0)
                    {
                        thongbao = "Đặt giá thất bại! Vui lòng đặt giá cao hơn";
                    }
                    else if (kq == -1)
                    {
                        thongbao              = "Đặt giá thất bại! Vui lòng đặt giá cao hơn";
                        dg.GiaCaoNhatHienTai += dg.BuocNhay;
                        if (dg.GiaHanTuDong == true && DateTime.Now.AddMinutes(-5) <= dg.NgayKetThuc.Value)
                        {
                            dg.NgayKetThuc.Value.AddMinutes(10);
                        }
                        ctx.SaveChanges();
                    }
                    else
                    {
                        //lấy email người đang giữ giá
                        var tkgiugia = ctx.TaiKhoan
                                       .Where(tkk => tkk.ID == dg.ID_NguoiGiuGia)
                                       .FirstOrDefault()
                                       .Email;

                        thongbao = "Đặt giá thành công! Chúc mừng bạn là người đang giữ giá";

                        //gửi mail cho người yêu cầu đấu giá
                        CurrentContext.SendMail(tkyeucau.Email, "Chúc mừng bạn đặt giá thành công!");

                        //gửi mail cho người đang giữ giá
                        CurrentContext.SendMail(tkgiugia, "Đã có người đặt giá cao hơn bạn, sản phẩm: " + dg.Ten);


                        //gia hạn tự động
                        if (dg.GiaHanTuDong == true && DateTime.Now.AddMinutes(-5) <= dg.NgayKetThuc.Value)
                        {
                            dg.NgayKetThuc.Value.AddMinutes(10);
                        }

                        dg.GiaCaoNhatHienTai         += dg.BuocNhay;
                        ctdg.ID_TaiKhoanThamGiaDauGia = ID;

                        if (dg.GiaCaoNhatHienTai < tk)
                        {
                            dg.GiaCaoNhatHienTai = tk;
                        }
                        dg.ID_NguoiGiuGia = ctdg.ID_TaiKhoanThamGiaDauGia;
                        ctx.SaveChanges();  //lưu lại người giữ giá

                        //thêm vào bảng chi tiết
                        ctdg.NgayThamGiaDauGiaGanNhat = DateTime.Now;
                        ctx.ChiTietDauGia.Add(ctdg);
                        ctdg.GiaHienTaiLucDat = dg.GiaCaoNhatHienTai;
                        ctx.SaveChanges();
                    }
                }

                return(RedirectToAction("Index", "ThongBao", new { ThongBao = thongbao }));
            }
        }
Esempio n. 16
0
        public ActionResult HetHan_DanhGia(int idnguoigiugia, bool like, int iddaugia, string nhanxet)
        {
            using (var ctx = new QLDauGiaEntities())
            {
                string thongbao = "";

                if (ctx.DauGia
                    .Where(dg => dg.ID == iddaugia)
                    .FirstOrDefault()
                    .NguoiBanDanhGia == true)
                {
                    thongbao = "Đánh giá thất bại! Sản phẩm đã được đánh giá";
                    return(RedirectToAction("Index", "ThongBao", new { ThongBao = thongbao }));
                }
                //thông tin người mua (giữ giá đến cuối cùng)
                var ds = ctx.TaiKhoan
                         .Where(dg => dg.ID == idnguoigiugia)
                         .FirstOrDefault();

                if (like == true)
                {
                    if (ds.DanhGiaTot != null)
                    {
                        ds.DanhGiaTot++;
                    }
                    else
                    {
                        ds.DanhGiaTot = 1;
                    }
                }
                else
                {
                    if (ds.DanhGiaXau != null)
                    {
                        ds.DanhGiaXau++;
                    }
                    else
                    {
                        ds.DanhGiaXau = 1;
                    }
                }

                thongbao = "Đánh giá thành công!";
                ctx.SaveChanges();

                ctx.DauGia
                .Where(dg => dg.ID == iddaugia)
                .FirstOrDefault()
                .NguoiBanDanhGia = true;
                ctx.SaveChanges();

                //thêm vào bảng nhận xét;

                var nx = ctx.NhanXet.Add(new NhanXet()
                {
                    ID_DauGia           = iddaugia,
                    ID_NguoiDanhGia     = CurrentContext.GetCurUser().ID,
                    ID_NguoiDuocDanhGia = idnguoigiugia,
                    Like       = like,
                    LoiNhanXet = nhanxet,
                    Ngay       = DateTime.Now,
                    LaNguoiBan = true
                });
                ctx.SaveChanges();
                return(RedirectToAction("Index", "ThongBao", new { ThongBao = thongbao }));
            }
        }
Esempio n. 17
0
        public ActionResult Kich(int id_dg, int id_nbk)
        {
            using (var ctx = new QLDauGiaEntities())
            {
                var tb = "KICK thành công";

                string ten     = null;
                string sdt     = null;
                string tong    = null;
                string tot     = null;
                string xau     = null;
                string gia     = null;
                bool   thaydoi = false;
                var    ds      = ctx.ChiTietDauGia
                                 .Where(ctdg => ctdg.ID_DauGia == id_dg && ctdg.ID_TaiKhoanThamGiaDauGia == id_nbk)
                                 .ToList();
                foreach (var item in ds)
                {
                    item.BiCam = true;
                }
                ctx.SaveChanges();

                //kiểm tra có đang giữ giá
                var dg = ctx.DauGia
                         .Where(dgg => dgg.ID == id_dg)
                         .FirstOrDefault();

                if (dg.ID_NguoiGiuGia == id_nbk)
                {
                    thaydoi = true;
                    var nguoiketiep = ctx.ChiTietDauGia
                                      .Where(ctdg => ctdg.ID_DauGia == id_dg && ctdg.BiCam != true)
                                      .OrderByDescending(ctdg => ctdg.GiaGanNhat)
                                      .FirstOrDefault();

                    if (nguoiketiep == null)
                    {
                        dg.GiaCaoNhatHienTai = null;
                        dg.ID_NguoiGiuGia    = null;
                        gia = String.Format("{0:N0}", dg.GiaKhoiDiem);
                    }
                    else
                    {
                        dg.GiaCaoNhatHienTai = nguoiketiep.GiaGanNhat;
                        dg.ID_NguoiGiuGia    = nguoiketiep.ID_TaiKhoanThamGiaDauGia;
                        var tk_nkt = ctx.TaiKhoan
                                     .Where(tk => tk.ID == nguoiketiep.ID_TaiKhoanThamGiaDauGia)
                                     .FirstOrDefault();
                        ten  = tk_nkt.HoTen;
                        sdt  = tk_nkt.SoDienThoai;
                        gia  = String.Format("{0:N0}", dg.GiaCaoNhatHienTai);
                        tong = (tk_nkt.DanhGiaTot - tk_nkt.DanhGiaXau).ToString();
                        tot  = tk_nkt.DanhGiaTot.ToString();
                        xau  = tk_nkt.DanhGiaXau.ToString();
                    }
                }
                ctx.SaveChanges();

                //gửi mail cho người bị kích
                var tkbk = ctx.TaiKhoan
                           .Where(tkk => tkk.ID == id_nbk)
                           .FirstOrDefault()
                           .Email;
                CurrentContext.SendMail(tkbk, "Rất tiếc! Bạn đã bị kích khỏi phiên đấu giá! Sản phẩm: " + dg.Ten);

                var kq = new { tb = tb, t = ten, sdt = sdt, dg_tong = tong, dg_tot = tot, dg_xau = xau, g = gia, td = thaydoi };
                return(Json(kq, JsonRequestBehavior.AllowGet));
            }
        }