Пример #1
0
        public ActionResult ReportSpam(ReportSpamViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (Session["Username"] != null)
                {
                    string        username         = Session["Username"] as string;
                    Spam          spam             = new Spam(model, username);
                    SuccessAndMsg addNewSpamResult = spamDAO.AddNewSpam(spam);
                    if (!addNewSpamResult.IsSuccess)
                    {
                        // thêm báo cáo vi phạm thất bại, chuyển đến trang lỗi
                        TempData["Error"] = new ErrorViewModel(addNewSpamResult.Message);
                        return(RedirectToAction("SharedError", "Error"));
                    }
                    else
                    {
                        ViewBag.AddNewSpamMsg = addNewSpamResult.Message;
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", ActionMessage.MissingOrInvalidInfo);
            }

            return(View(model));
        }
Пример #2
0
        /// <summary>
        /// Thêm sản phẩm và các hình ảnh vào CSDL
        /// </summary>
        /// <param name="username">Tên người dùng</param>
        /// <param name="model">Thông tin sản phẩm</param>
        /// <param name="files"></param>
        /// <param name="serverPath"></param>
        public SuccessAndMsg AddProductToDb(string username, Product model, List <HttpPostedFileBase> files, string serverPath)
        {
            if (files != null && files[0] != null)
            {
                SuccessAndMsg addProductResult = AddNewProduct(username, model);
                if (!addProductResult.IsSuccess)
                {
                    return(new SuccessAndMsg(false, AddNewProductResult.AddProductFailed));
                }

                SuccessAndMsg copyImagesResult = CopyImages(model, files, serverPath);
                if (!copyImagesResult.IsSuccess)
                {
                    return(new SuccessAndMsg(false, AddNewProductResult.AddProductFailed));
                }

                try
                {
                    // lưu xuống CSDL
                    db.SaveChanges();

                    return(new SuccessAndMsg(true, AddNewProductResult.AddProductSuccessful));
                }
                catch
                {
                    return(new SuccessAndMsg(false, AddNewProductResult.AddProductFailed));
                }
            }

            return(new SuccessAndMsg(false, AddNewProductResult.MissingPictures));
        }
Пример #3
0
        public ActionResult Register(RegisterViewModel user)
        {
            if (ModelState.IsValid)
            {
                SuccessAndMsg registerResult = dao.Register(user);
                if (registerResult.IsSuccess)
                {
                    // hiển thị thông báo đăng ký thành công
                    ViewBag.RegisterMsg = registerResult.Message;

                    // xóa dữ liệu cũ đi
                    ModelState.Clear();
                }
                else // lỗi đăng ký: tài khoản đã tồn tại
                {
                    ModelState.AddModelError("", registerResult.Message);
                    return(View(user));
                }
            }
            else
            {
                // hiển thị thông báo lỗi cho người dùng
                ModelState.AddModelError("", ActionMessage.MissingOrInvalidInfo);
            }

            return(View());
        }
Пример #4
0
        //
        // POST:
        public ActionResult AddProductToWishList(int productID)
        {
            // nếu chưa có Danh sách sản phẩm muốn mua thì khởi tạo
            if (Session["WishList"] == null)
            {
                Session["WishList"] = new Dictionary <int, ProductInWishListViewModel>();
            }

            // đã có Danh sách sản phẩm muốn mua
            Dictionary <int, ProductInWishListViewModel> dictProducts = Session["WishList"] as Dictionary <int, ProductInWishListViewModel>;
            SuccessAndMsg addProdToWishListResult = null;

            if (Session["Username"] != null)
            {
                string username = Session["Username"] as string;
                addProdToWishListResult = dao.AddProdToWishListInDb(username, productID);
                dao.AddProdToWishList(dictProducts, productID);
            }
            else
            {
                addProdToWishListResult = dao.AddProdToWishList(dictProducts, productID);
            }

            if (addProdToWishListResult.IsSuccess)
            {
                // thay đổi Danh sách sản phẩm muốn mua
                Session["WishList"] = dictProducts;
                return(RedirectToAction("Index"));
            }

            // thêm sản phẩm vào Danh sách sản phẩm muốn mua thất bại
            TempData["Error"] = new ErrorViewModel(addProdToWishListResult.Message);
            return(RedirectToAction("SharedError", "Error"));
        }
Пример #5
0
        public ActionResult ChangePersonalDetail(AccountInfoViewModel model)
        {
            if (ModelState.IsValid)
            {
                SuccessAndMsg changeUserInfoResult = accountDAO.ChangePersonalDetail(model);

                if (changeUserInfoResult.IsSuccess)
                {
                    // đổi thông tin tài khoản thành công
                    ViewBag.UpdateInfoMsg = changeUserInfoResult.Message;
                }
                else
                {
                    // đổi thông tin tài khoản thất bại
                    ModelState.AddModelError("", changeUserInfoResult.Message);
                }
            }
            else
            {
                // nhập thiếu thông tin hoặc thông tin không hợp lệ
                ModelState.AddModelError("", ActionMessage.MissingOrInvalidInfo);
            }

            return(View(model));
        }
Пример #6
0
        public ActionResult Index(List <ProductInWishListViewModel> model)
        {
            if (model != null)
            {
                SuccessAndMsg updateWishList = null;
                if (Session["Username"] != null)
                {
                    string username = Session["Username"] as string;
                    updateWishList = dao.UpdateWishListInDb(model, username);
                }
                else
                {
                    updateWishList = dao.UpdateWishList(model);
                }
                if (updateWishList.IsSuccess)
                {
                    Dictionary <int, ProductInWishListViewModel> wishList = updateWishList.Value as Dictionary <int, ProductInWishListViewModel>;
                    Session["WishList"]       = wishList;
                    ViewBag.UpdateWishListMsg = WishListControllerMsg.UpdateWishListSuccessful;
                    model = wishList.Values.ToList();
                }
                else
                {
                    // cập nhật Danh sách sản phẩm muốn mua thất bại
                    TempData["Error"] = new ErrorViewModel(updateWishList.Message);
                    return(RedirectToAction("SharedError", "Error"));
                }
            }
            else
            {
                model = new List <ProductInWishListViewModel>();
            }

            return(View(model));
        }
Пример #7
0
        public ActionResult ChangePassword(ChangePasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                SuccessAndMsg changePassResult = accountDAO.ChangePassword(model);

                if (changePassResult.IsSuccess)
                {
                    // đổi mật khẩu thành công
                    ViewBag.ChangePasswordMsg = changePassResult.Message;
                    ModelState.Clear();
                }
                else
                {
                    // đổi mật khẩu thất bại
                    ModelState.AddModelError("", changePassResult.Message);
                }
            }
            else
            {
                // đổi mật khẩu thất bại
                ModelState.AddModelError("", ActionMessage.MissingOrInvalidInfo);
            }

            return(View());
        }
Пример #8
0
        public SuccessAndMsg GetProductReport(int productID)
        {
            var product = db.Products.FirstOrDefault(p => p.ProductID == productID);

            if (product != null)
            {
                SuccessAndMsg getUserResult     = userDAO.GetUser(product.Username);
                SuccessAndMsg getImageUrlResult = imageDAO.GetFirstUrlString(productID);
                // lấy thông tin người dùng thất bại
                if (!getUserResult.IsSuccess)
                {
                    return(new SuccessAndMsg(false, getUserResult.Message));
                }
                // lấy đường dẫn hình ảnh thất bại
                if (!getImageUrlResult.IsSuccess)
                {
                    return(new SuccessAndMsg(false, getImageUrlResult.Message));
                }

                User   user = getUserResult.Value as User;
                string url  = getImageUrlResult.Value as string;
                ProductReportViewModel result = new ProductReportViewModel(product, user, url);
                return(new SuccessAndMsg(true, ProductDAOMsg.GetProductReportSuccessful, result));
            }

            return(new SuccessAndMsg(false, ProductDAOMsg.GetProductReportFailed));
        }
Пример #9
0
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                LoginResultType loginResult = dao.Login(model);

                if (loginResult.IsSuccess)
                {
                    Session["Username"] = loginResult.CurrentUser.Username;
                    Session["Role"]     = loginResult.CurrentUser.Role;

                    // lấy ra Danh sách sản phẩm muốn mua trong session
                    Dictionary <int, ProductInWishListViewModel> wishList = Session["WishList"] != null ? Session["WishList"] as Dictionary <int, ProductInWishListViewModel> : new Dictionary <int, ProductInWishListViewModel>();

                    SuccessAndMsg getWishListInDb = wishListDAO.GetWishListInDb(loginResult.CurrentUser.Username);
                    if (!getWishListInDb.IsSuccess)
                    {
                        // lấy ra Danh sách sản phẩm muốn mua thất bại
                        TempData["Error"] = new ErrorViewModel(getWishListInDb.Message);
                        return(RedirectToAction("SharedError", "Error"));
                    }

                    // gộp 2 Danh sách sản phẩm muốn mua
                    SuccessAndMsg combineWishList = wishListDAO.CombineWishList(getWishListInDb.Value as Dictionary <int, ProductInWishListViewModel>, wishList);
                    if (!combineWishList.IsSuccess)
                    {
                        // gộp 2 Danh sách sản phẩm muốn mua thất bại
                        TempData["Error"] = new ErrorViewModel(combineWishList.Message);
                        return(RedirectToAction("SharedError", "Error"));
                    }

                    // lưu Danh sách sản phẩm muốn mua mới vào Session
                    Session["WishList"] = combineWishList.Value as Dictionary <int, ProductInWishListViewModel>;

                    // chuyển đến trang được yêu cầu trước đó
                    if (returnUrl != null)
                    {
                        return(Redirect(returnUrl));
                    }

                    // chuyển về trang chủ nếu không có trang yêu cầu trước đó
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.Clear();
                    ModelState.AddModelError("", loginResult.Message);
                }
            }
            else
            {
                // hiển thị thông báo lỗi cho người dùng
                ModelState.AddModelError("", ActionMessage.MissingOrInvalidInfo);
            }

            return(View());
        }
Пример #10
0
        //
        // GET: /Admin/ManageAccount
        public ActionResult ManageAccount(int?page, string viewType, string search, string userAction)
        {
            if (Session["Username"] != null)
            {
                SuccessAndMsg getListUsersResult = dao.GetListAccInManageAccs(viewType, search);

                // lần đầu hiển thị
                if (page == null)
                {
                    if (getListUsersResult.IsSuccess)
                    {
                        List <AccInManageAccViewModel> model = getListUsersResult.Value as List <AccInManageAccViewModel>;

                        int pageSize   = 10;
                        int pageNumber = (page ?? 1); // trả về giá trị của page nếu nó là 1 giá trị khác null, nếu không trả về 1

                        ViewBag.PagedList  = model.ToPagedList(pageNumber, pageSize);
                        ViewBag.TotalPages = model.Count % 10 == 0 ? model.Count / 10 : model.Count / 10 + 1;
                        return(View(model.OrderByDescending(u => u.Username).Skip((pageNumber - 1) * 10).Take(10).ToList()));
                    }

                    // lấy danh sách các tài khoản thất bại
                    TempData["Error"] = new ErrorViewModel(getListUsersResult.Message);
                    return(RedirectToAction("SharedError", "Error"));
                }
                else
                {
                    // thiết lập lại các giá trị viewType, search để tránh gặp lỗi
                    viewType = viewType == null ? "" : viewType;
                    search   = search == null ? "" : search;

                    // Trả về danh sách các sản phẩm theo điều kiện lọc
                    List <AccInManageAccViewModel> model = getListUsersResult.Value as List <AccInManageAccViewModel>;

                    int pageSize   = 10;
                    int pageNumber = (page ?? 1); // trả về giá trị của page nếu nó là 1 giá trị khác null, nếu không trả về 1

                    ViewBag.PagedList  = model.ToPagedList(pageNumber, pageSize);
                    ViewBag.TotalPages = model.Count % 10 == 0 ? model.Count / 10 : model.Count / 10 + 1;
                    ViewBag.ViewType   = viewType;
                    ViewBag.SearchKey  = search;
                    ViewBag.UserAction = userAction;
                    return(View(model.OrderByDescending(u => u.Username).Skip((pageNumber - 1) * 10).Take(10).ToList()));
                }
            }

            return(RedirectToAction("SharedError", "Error"));
        }
Пример #11
0
        public ActionResult ManageAccount(List <AccInManageAccViewModel> model, int?page, string viewType, string search, string userAction)
        {
            if (Session["Username"] != null)
            {
                string username = Session["Username"] != null ? Session["Username"] as string : string.Empty;

                // thực hiện hành động của người dùng
                userAction = userAction == null ? string.Empty : userAction;
                switch (userAction)
                {
                case "Khóa tài khoản":
                    dao.BlockAccounts(model);
                    break;

                case "Mở khóa tài khoản":
                    dao.UnlockAccounts(model);
                    break;

                default:     // không làm gì cả
                    break;
                }

                // xử lý theo từng cách hiển thị:
                viewType = viewType == null ? "" : viewType;
                search   = search == null ? "" : search;

                SuccessAndMsg getListUsersResult = dao.GetListAccInManageAccs(viewType, search);
                if (getListUsersResult.IsSuccess)
                {
                    // Trả về danh sách các sản phẩm theo điều kiện lọc
                    model = getListUsersResult.Value as List <AccInManageAccViewModel>;

                    ModelState.Clear(); // xóa các dữ liệu cũ

                    int pageSize   = 10;
                    int pageNumber = (page ?? 1); // trả về giá trị của page nếu nó là 1 giá trị khác null, nếu không trả về 1

                    ViewBag.PagedList  = model.ToPagedList(pageNumber, pageSize);
                    ViewBag.TotalPages = model.Count % 10 == 0 ? model.Count / 10 : model.Count / 10 + 1;
                    ViewBag.ViewType   = viewType;
                    ViewBag.SearchKey  = search;
                    ViewBag.UserAction = userAction;
                    return(View(model.OrderByDescending(u => u.Username).Skip((pageNumber - 1) * 10).Take(10).ToList()));
                }
            }

            return(View(model));
        }
Пример #12
0
        /// <summary>
        /// Lấy Danh sách sản phẩm muốn mua trong CSDL
        /// </summary>
        /// <param name="username">Tên người dùng</param>
        /// <returns></returns>
        public SuccessAndMsg GetWishListInDb(string username)
        {
            try
            {
                var wishList = db.WishLists.Where(wl => wl.Username == username);
                if (wishList != null)
                {
                    Dictionary <int, ProductInWishListViewModel> dictWishList = new Dictionary <int, ProductInWishListViewModel>();
                    List <WishList> lstProdsInWishList = wishList.ToList();
                    for (int i = 0; i < lstProdsInWishList.Count; i++)
                    {
                        WishList item = lstProdsInWishList[i];
                        // lấy thông tin người dùng đăng sản phẩm này
                        SuccessAndMsg getImageUrl = imageDAO.GetFirstUrlString(item.ProductID);
                        SuccessAndMsg getProduct  = productDAO.GetProduct(item.ProductID);
                        SuccessAndMsg getUser     = userDAO.GetUser(item.Username);
                        // lấy đường dẫn hình ảnh của sản phẩm thất bại
                        if (!getImageUrl.IsSuccess)
                        {
                            return(new SuccessAndMsg(false, getImageUrl.Message));
                        }

                        // lấy sản phẩm thất bại
                        if (!getProduct.IsSuccess)
                        {
                            return(new SuccessAndMsg(false, getProduct.Message));
                        }

                        // lấy thông tin người dùng thất bại
                        if (!getUser.IsSuccess)
                        {
                            return(new SuccessAndMsg(false, getUser.Message));
                        }

                        ProductInWishListViewModel prod = new ProductInWishListViewModel(getProduct.Value as Product, getUser.Value as User, getImageUrl.Value as string);
                        dictWishList.Add(prod.ProductID, prod);
                    }
                    return(new SuccessAndMsg(true, WishListDAOMsg.GetWishListSuccessfull, dictWishList));
                }
            }
            catch
            {
            }

            return(new SuccessAndMsg(false, WishListDAOMsg.GetWishListFailed));
        }
Пример #13
0
        /// <summary>
        /// Lấy ra sản phẩm bị báo cáo vi phạm
        /// </summary>
        /// <param name="productID">Mã sản phẩm</param>
        /// <returns></returns>
        public ActionResult ReportProduct(int productID)
        {
            if (Session["Username"] != null)
            {
                SuccessAndMsg getReportProductResult = productDAO.GetProductReport(productID);

                if (getReportProductResult.IsSuccess)
                {
                    ProductReportViewModel model = getReportProductResult.Value as ProductReportViewModel;
                    return(PartialView("_ProductIsReportedPartial", model));
                }

                TempData["Error"] = new ErrorViewModel(getReportProductResult.Message);
                return(RedirectToAction("SharedError", "Error"));
            }

            return(RedirectToAction("SharedError", "Error"));
        }
Пример #14
0
        /// <summary>
        /// Lấy chi tiết sản phẩm theo tên người dùng
        /// </summary>
        /// <param name="username">Tên người dùng</param>
        /// <returns></returns>
        public SuccessAndMsg GetAccListProduct(string username)
        {
            List <ProductDetailViewModel> lstProducts = new List <ProductDetailViewModel>();

            try
            {
                List <string> imageUrls = new List <string>();
                var           products  = from p in db.Products
                                          where p.Username == username
                                          select new ProductDetailViewModel
                {
                    ProductID   = p.ProductID,
                    ProductName = p.ProductName,
                    Price       = p.Price,
                    Username    = p.Username,
                    ListImages  = imageUrls
                };

                // thiết lập kết quả trả về
                if (products != null && products.Count() > 0)
                {
                    lstProducts = products.ToList();

                    // gán danh sách đường dẫn hình ảnh vào các sản phẩm liên quan
                    foreach (ProductDetailViewModel product in lstProducts)
                    {
                        SuccessAndMsg getListImageUrlsResult = imageDAO.GetListImageUrls(product.ProductID);
                        if (getListImageUrlsResult.IsSuccess)
                        {
                            product.ListImages = getListImageUrlsResult.Value as List <string>;
                        }
                    }

                    return(new SuccessAndMsg(true, GetListProductResult.GetListProductSuccessful, lstProducts));
                }
            }
            catch (Exception e)
            {
            }

            return(new SuccessAndMsg(false, GetListProductResult.GetListProductFailed));
        }
Пример #15
0
        public ActionResult NewPost(Product model, List <HttpPostedFileBase> files)
        {
            if (Session["Username"] != null)
            {
                string username = Session["Username"] as string;

                // thêm danh sách các loại sp để hiển thị lại
                List <SelectListItem> categories = listAndDict.GetListCategories();
                categories[0].Selected = true;

                ViewBag.Categories     = categories;
                ViewBag.DictCategories = listAndDict.GetDictCategories();

                if (ModelState.IsValid)
                {
                    // Thêm sản phẩm mới
                    string        serverPath       = Server.MapPath("~/Images/Products");
                    SuccessAndMsg addProductResult = dao.AddProductToDb(username, model, files, serverPath);
                    if (addProductResult.IsSuccess)
                    {
                        // thêm sản phẩm mới thành công
                        ViewBag.AddProductMsg = addProductResult.Message;
                    }
                    else
                    {
                        // thêm sản phẩm mới thất bại
                        ModelState.AddModelError("", addProductResult.Message);
                    }
                }
                else
                {
                    ModelState.AddModelError("", AddNewProductResult.AddProductFailed);
                }
            }
            else
            {
                ModelState.AddModelError("", AddNewProductResult.AddProductFailed);
            }

            return(View());
        }
Пример #16
0
        /// <summary>
        /// Lấy ra tất cả bài đăng của người dùng
        /// </summary>
        /// <param name="username">Tên người dùng</param>
        /// <returns></returns>
        public ActionResult AccountPost(int?page, string username, string name)
        {
            SuccessAndMsg getListProductResult = productDAO.GetAccListProduct(username);

            if (getListProductResult.IsSuccess)
            {
                // lấy danh sách sản phẩm thành công
                List <ProductDetailViewModel> lstProducts = getListProductResult.Value as List <ProductDetailViewModel>;

                int pageNumber = (page ?? 1); // trả về giá trị của page nếu nó là 1 giá trị khác null, nếu không trả về 1

                ViewBag.Username        = username;
                ViewBag.ProductQuanlity = lstProducts.Count;
                ViewBag.Name            = name;
                return(PartialView("_GetAccountPostPartial", lstProducts.OrderByDescending(m => m.ProductID).ToPagedList(pageNumber, pageSize)));
            }

            // đặt lỗi trong TempData để sử dụng hiển thị ra màn hình lỗi
            TempData["Error"] = new ErrorViewModel(InfoActionErrorMsg.AccountPostError);
            return(RedirectToAction("Error", "Info"));
        }
Пример #17
0
        /// <summary>
        /// Thêm 1 sản phẩm vào Danh sách sản phẩm muốn mua
        /// </summary>
        /// <param name="dictProducts">Danh sách sản phẩm muốn mua đã có: gồm mã sản phẩm và thông tin sản phẩm tương ứng</param>
        /// <param name="productID">Mã sản phẩm</param>
        /// <returns></returns>
        public SuccessAndMsg AddProdToWishList(Dictionary <int, ProductInWishListViewModel> dictProducts, int productID)
        {
            var product = db.Products.FirstOrDefault(p => p.ProductID == productID);

            if (product != null && dictProducts != null)
            {
                // nếu chưa tồn tại sản phẩm đó
                if (!dictProducts.ContainsKey(productID))
                {
                    // lấy thông tin người dùng đăng sản phẩm này
                    SuccessAndMsg getUserResult     = userDAO.GetUser(product.Username);
                    SuccessAndMsg getImageUrlResult = imageDAO.GetFirstUrlString(productID);

                    // lấy thông tin người dùng thất bại
                    if (!getUserResult.IsSuccess)
                    {
                        return(new SuccessAndMsg(false, getUserResult.Message));
                    }

                    // lấy đường dẫn hình ảnh của sản phẩm thất bại
                    if (!getImageUrlResult.IsSuccess)
                    {
                        return(new SuccessAndMsg(false, getImageUrlResult.Message));
                    }

                    User   user     = getUserResult.Value as User;
                    string imageUrl = getImageUrlResult.Value as string;

                    // tồn tại sản phẩm có mã sản phẩm là productID
                    ProductInWishListViewModel prodInWishList = new ProductInWishListViewModel(product, user, imageUrl);
                    dictProducts.Add(productID, prodInWishList);
                }

                return(new SuccessAndMsg(true, WishListDAOMsg.AddProdToWishListSuccessful, dictProducts));
            }

            return(new SuccessAndMsg(false, WishListDAOMsg.AddProdToWishListFailed));
        }