// GET: Auction/Rating public ActionResult Rating(RatingVM vm) { using (var ctx = new AuctionSiteDBEntities()) { int idcurrent = CurrentContext.GetCurUser().ID; bool check = ctx.Ratings.Any(r => r.IDUser == vm.ID && r.IDUserRating == idcurrent); if (check == true) { TempData["mess"] = "You Have already rated for this seller!!!"; return(RedirectToAction("ShowWin", "Auction")); } int id = vm.ID; User user = ctx.Users.Where(u => u.ID == id).FirstOrDefault <User>(); if (vm.negativePoint == -1) { user.negativePoint++; } else { user.positivePoint++; } //save rating var rating = new Rating() { IDUser = vm.ID, IDUserRating = CurrentContext.GetCurUser().ID, }; ctx.Ratings.Add(rating); ctx.SaveChanges(); } TempData["mess"] = "Thanks for your rating!!!"; return(RedirectToAction("ShowWin", "Auction")); }
public ActionResult Register(RegisterVM model) { if (!ModelState.IsValid) { ViewBag.ErrorMsg = "Incorrect CAPTCHA code!"; } else { User u = new User { Username = model.f_Username, Email = model.f_Email, Name = model.f_Name, Address = model.f_Address, Password = StringUtils.Md5(model.f_RawPassword), Permission = 0, DOB = DateTime.ParseExact(model.f_DOB, "d/M/yyyy", null) }; using (var ctx = new AuctionSiteDBEntities()) { ctx.Users.Add(u); ctx.SaveChanges(); } } return(View()); }
public ActionResult Login(LoginVM model) { string encPwd = StringUtils.Md5(model.f_RawPassword); using (var ctx = new AuctionSiteDBEntities()) { var user = ctx.Users.Where(u => u.Username == model.f_Username && u.Password == encPwd) .FirstOrDefault(); if (user != null) { Session["isLogin"] = 1; Session["user"] = user; if (model.Remember) { Response.Cookies["userId"].Value = user.ID.ToString(); Response.Cookies["userId"].Expires = DateTime.Now.AddDays(7); } return(RedirectToAction("Index", "Home")); } else { ViewBag.ErrorMsg = "Login failed! check your information..."; return(View()); } } }
public ActionResult WatchList() { using (var ctx = new AuctionSiteDBEntities()) { var iduser = CurrentContext.GetCurUser().ID; var list = (from p in ctx.Products join f in ctx.FavoriteProducts on p.ID equals f.IDProducts where f.IDUsers == iduser select new ProductVM { ID = p.ID, IDCat = p.IDCat, Name = p.Name, Description = p.Description, StartPrice = p.StartPrice, StepPrice = p.StepPrice, EndPrice = p.EndPrice, ExtendTime = p.ExtendTime, EvaluationPoint = p.EvaluationPoint, HighestKeeper = p.HighestKeeper, TimePost = p.TimePost, CurrentPrice = p.CurrentPrice, UserID = p.UserID, Bought = p.Bought, }).ToList(); return(View(list)); } }
// GET: Home public ActionResult Index() { List <Product> SetPrice = new List <Product>(); using (var ctx = new AuctionSiteDBEntities()) { var listget = ctx.Auctions.ToList(); var listmax = ctx.Products.Where(p => p.Bought == false && (DateTime.Now <= EntityFunctions.AddDays(p.TimePost, p.IntervalTime))).OrderByDescending(p => p.PriceDisplay).ToList().Take(5); var listend = ctx.Products.Where(p => p.Bought == false && (DateTime.Now <= EntityFunctions.AddDays(p.TimePost, p.IntervalTime))) .OrderBy(p => (EntityFunctions.DiffSeconds(DateTime.Now, EntityFunctions.AddDays(p.TimePost, p.IntervalTime)))).ToList().Take(5); var TopSetPriceList = listget.GroupBy(a => a.IDPro).OrderByDescending(a => a.Key).ToList().Take(5); foreach (var id in TopSetPriceList) { Product pro = ctx.Products.Where(p => p.ID == id.Key && p.Bought == false).FirstOrDefault(); if (pro != null) { SetPrice.Add(pro); } } HomeVM vm = new HomeVM(); vm.MostSettingPrice = new List <Product>(); vm.MaxPrice = new List <Product>(); vm.EndDate = new List <Product>(); vm.EndDate.AddRange(listend); vm.MostSettingPrice.AddRange(SetPrice); vm.MaxPrice.AddRange(listmax); return(View(vm)); } }
public ActionResult ChangeInfo(User vm) { using (var dt = new AuctionSiteDBEntities()) { string encPwd = StringUtils.Md5(vm.Password); var list = dt.Users.ToList(); var user = dt.Users.Where(u => u.Password == encPwd && vm.ID == u.ID).FirstOrDefault(); if (user == null) { ViewBag.ErrorMsg = "wrong password!!!"; return(View(CurrentContext.GetCurUser())); } if (list.Any(u => u.Email == vm.Email && u.ID != vm.ID)) { ViewBag.ErrorMsg = "this email has been already used "; return(View(CurrentContext.GetCurUser())); } } int id = CurrentContext.GetCurUser().ID; using (var ctx = new AuctionSiteDBEntities()) { var user = ctx.Users.Where(u => u.ID == vm.ID).FirstOrDefault <User>(); user.Email = vm.Email; user.Name = vm.Name; ctx.SaveChanges(); ViewBag.ErrorMsg = "Change info success!!!"; return(View(CurrentContext.GetCurUser())); } }
public ActionResult Add(Product vm, HttpPostedFileBase Firstimg, HttpPostedFileBase Secondimg , HttpPostedFileBase Thirdimg) { using (var ctx = new AuctionSiteDBEntities()) { vm.CurrentPrice = null; vm.HighestKeeper = null; vm.EvaluationPoint = null; vm.TimePost = DateTime.Now; ctx.Products.Add(vm); ctx.SaveChanges(); if (Firstimg != null && Firstimg.ContentLength > 0 && (Secondimg != null && Secondimg.ContentLength > 0) && (Thirdimg != null && Thirdimg.ContentLength > 0)) { string spDirPath = Server.MapPath("~/Img/products"); string targetDirPath = Path.Combine(spDirPath, vm.ID.ToString()); Directory.CreateDirectory(targetDirPath); string mainFileName = Path.Combine(targetDirPath, "main.jpg"); Firstimg.SaveAs(mainFileName); string mainFileName2 = Path.Combine(targetDirPath, "main2.jpg"); Secondimg.SaveAs(mainFileName2); string mainFileName3 = Path.Combine(targetDirPath, "main3.jpg"); Thirdimg.SaveAs(mainFileName3); } var list = ctx.Categories.ToList(); ViewBag.Categories = list; } return(View()); }
// GET: Account/AskPermission public ActionResult AskPermission() { var WaitingUser = new UsersAsking() { Username = CurrentContext.GetCurUser().Username, Email = CurrentContext.GetCurUser().Email, Name = CurrentContext.GetCurUser().Name, AskingDate = DateTime.Now, IDUser = CurrentContext.GetCurUser().ID, }; using (var ctx = new AuctionSiteDBEntities()) { var userwaiting = ctx.UsersAskings.Any(u => u.IDUser == WaitingUser.IDUser); if (userwaiting == true) { ViewBag.exist = "You have already asked for selling permission for once!!!"; } else { ctx.UsersAskings.Add(WaitingUser); ctx.SaveChanges(); } } return(View()); }
public ActionResult ChangePassword(User vm) { using (var dt = new AuctionSiteDBEntities()) { string encPwd = StringUtils.Md5(vm.Password); var list = dt.Users.ToList(); var user = dt.Users.Where(u => u.Password == encPwd && vm.ID == u.ID).FirstOrDefault(); if (user == null) { ViewBag.ErrorMsg = "Current password is wrong!!!"; return(View(CurrentContext.GetCurUser())); } if (vm.NewPassword != vm.NewPasswordAgain) { ViewBag.ErrorMsg = "Check your new password!!!"; return(View(CurrentContext.GetCurUser())); } } using (var ctx = new AuctionSiteDBEntities()) { var user = ctx.Users.Where(u => u.ID == vm.ID).FirstOrDefault <User>(); user.Password = StringUtils.Md5(vm.NewPassword); ctx.SaveChanges(); ViewBag.ErrorMsg = "Change Password success!!!"; return(View(CurrentContext.GetCurUser())); } }
// GET: Products/ByCat public ActionResult ByCat(int?id) { if (id.HasValue == false) { return(RedirectToAction("Index", "Home")); } using (var ctx = new AuctionSiteDBEntities()) { //check expired var listpros = ctx.Products.Where(p => (DateTime.Now > System.Data.Entity.DbFunctions.AddDays(p.TimePost, p.IntervalTime))) .ToList(); if (listpros.Count > 0) { foreach (Product pro in listpros) { dynamic emailforwinner = new Email("win"); dynamic emailforonwer = new Email("owner"); dynamic emailforonwer_notsell = new Email("notsell"); pro.Bought = true; var user = ctx.Users.Where(u => u.ID == pro.lastuser).FirstOrDefault(); var userowner = ctx.Users.Where(u => u.ID == pro.UserID).FirstOrDefault(); if (pro.lastuser != null) { //create emails //for winnner emailforwinner.To = user.Email; emailforwinner.Name = user.Name; emailforwinner.ProName = pro.Name; emailforwinner.price = pro.PriceDisplay; emailforwinner.Send(); //for onwer emailforonwer.To = userowner.Email; emailforonwer.Name = userowner.Name; emailforonwer.ProName = pro.Name; emailforonwer.price = pro.PriceDisplay; emailforwinner.Send(); } //if no one pay attention for products lastuser == null //for onwer emailforonwer_notsell.To = userowner.Email; emailforonwer_notsell.Name = userowner.Name; emailforonwer_notsell.ProName = pro.Name; emailforonwer_notsell.Send(); } } ctx.SaveChanges(); bool list = ctx.Products.Any(p => p.Bought == false && p.IDCat == id); var listpro = ctx.Products.Where(p => p.Bought == false && p.IDCat == id).ToList(); //check if no product is found because all of them have been deleted at check expired if (list == true) { return(View(listpro)); } else { return(View(model: null)); } } }
public ActionResult SearchName(ProductVM vm) { using (var ctx = new AuctionSiteDBEntities()) { var listpro = ctx.Products.Where(p => p.Name.Contains(vm.Name) && p.Bought == false).ToList(); return(View(listpro)); } }
// GET: MCategories public ActionResult Index() { using (var ctx = new AuctionSiteDBEntities()) { var list = ctx.Categories.ToList(); return(View(list)); } }
// GET: Categories/ListOfCats public ActionResult ListOfCats() { using (var ctx = new AuctionSiteDBEntities()) { var List = ctx.Categories.ToList(); return(PartialView("ListOfCats", List)); } }
// GET: Auction/BanUser public ActionResult BanUser(int iduser, int idpro) { dynamic emailkick = new Email("Kick"); using (var ctx = new AuctionSiteDBEntities()) { //get product var pro = ctx.Products.Where(p => p.ID == idpro).FirstOrDefault(); var user = ctx.Users.Where(u => u.ID == iduser).FirstOrDefault(); var ban = new BannedUser() { IDProduct = idpro, IDUser = iduser, }; //get onwer Auction currentowner = ctx.Auctions.Where(a => a.own == true && a.IDPro == idpro).FirstOrDefault(); //create an email emailkick.To = CurrentContext.GetCurUser().Email; emailkick.Name = user.Name; emailkick.ProName = pro.Name; emailkick.Send(); ctx.BannedUsers.Add(ban); ctx.SaveChanges(); //check if we dont kick the onwer if (currentowner.IDUser != user.ID) { return(RedirectToAction("SettedBid", "Auction", new { id = idpro })); } } using (var update = new AuctionSiteDBEntities()) { var currentowner = update.Auctions.Where(a => a.own == true && a.IDPro == idpro).FirstOrDefault(); currentowner.own = false; var secondMax = update.Auctions.OrderByDescending(a => a.MaxPrice) .Where(p => p.IDPro == idpro) .Skip(1).FirstOrDefault(); //more than 1 price setting if (secondMax != null) { secondMax.own = true; //udpate maxprice of product Product pro = update.Products.Where(p => p.ID == idpro).FirstOrDefault <Product>(); pro.PriceDisplay = secondMax.MaxPrice; pro.lastuser = secondMax.IDUser; update.SaveChanges(); } //if we just have 1 setting price for this product then second will be turnned into null else { //udpate maxprice of product Product pro = update.Products.Where(p => p.ID == idpro).FirstOrDefault <Product>(); pro.PriceDisplay = pro.StartPrice; pro.lastuser = null; update.SaveChanges(); } } return(RedirectToAction("SettedBid", "Auction", new { id = idpro })); }
public ActionResult ListProAdmin() { using (var ctx = new AuctionSiteDBEntities()) { var listcat = ctx.Categories.ToList(); ViewBag.Categories = listcat; return(View()); } }
public ActionResult SearchMix(ProductVM vm) { using (var ctx = new AuctionSiteDBEntities()) { var cat = ctx.Categories.Where(c => c.ID == vm.IDCat).FirstOrDefault(); var listpro = ctx.Products.Where(p => p.Name.Contains(vm.Name) && p.Bought == false && cat.Name.Contains(vm.Name)).ToList(); return(View("SearchName", listpro)); } }
public ActionResult ChangePassword() { int id = CurrentContext.GetCurUser().ID; using (var ctx = new AuctionSiteDBEntities()) { var user = ctx.Users.Where(u => u.ID == id).FirstOrDefault(); return(View(user)); } }
// GET: Delete public ActionResult Delete() { using (var ctx = new AuctionSiteDBEntities()) { var curnameuser = CurrentContext.GetCurUser().Username; var list = ctx.Users.Where(u => u.Username != curnameuser).ToList(); return(View(list)); } }
public ActionResult Add() { using (var ctx = new AuctionSiteDBEntities()) { var list = ctx.Categories.ToList(); ViewBag.Categories = list; } return(View()); }
public ActionResult Edit(Category vm) { using (var ctx = new AuctionSiteDBEntities()) { var list = ctx.Categories.ToList(); Category CattoUpdate = list.Where(c => c.ID == vm.ID).FirstOrDefault <Category>(); CattoUpdate.Name = vm.Name; ctx.SaveChanges(); return(RedirectToAction("Index", "Home")); } }
public ActionResult InTime() { using (var ctx = new AuctionSiteDBEntities()) { int Iduser = CurrentContext.GetCurUser().ID; var list = ctx.Products.Where(p => ((p.UserID == Iduser) && (DateTime.Now <= EntityFunctions.AddDays(p.TimePost, p.IntervalTime)))) .ToList(); return(View(list)); } }
// GET: MAccount public ActionResult WaitingUsers() { using (var ctx = new AuctionSiteDBEntities()) { var list = (from u in ctx.Users join us in ctx.UsersAskings on u.ID equals us.IDUser select us).ToList(); return(View(list)); } }
public ActionResult EditDes(Product vm) { using (var ctx = new AuctionSiteDBEntities()) { var maxID = ctx.EditDes.Where(e => e.IDPro == vm.ID).Max(e => e.ID); EditDe pro = ctx.EditDes.First(x => x.ID == maxID); string encoded = HttpUtility.HtmlDecode(pro.Content); var tx = new MvcHtmlString(encoded); ViewBag.raw = tx; return(View(pro)); } }
public ActionResult Profile() { User user = CurrentContext.GetCurUser(); double total_percents = Math.Abs(user.positivePoint / (user.positivePoint + user.negativePoint)) * 100; ViewBag.Point = total_percents; using (var ctx = new AuctionSiteDBEntities()) { var iduser = CurrentContext.GetCurUser().ID; var list_rating = ctx.Ratings.Where(p => p.IDUser == iduser).ToList(); return(View()); } }
// Get: Accept public ActionResult Deny(User vm) { using (var ctx = new AuctionSiteDBEntities()) { var user = new UsersAsking { ID = vm.ID }; ctx.UsersAskings.Attach(user); ctx.UsersAskings.Remove(user); ctx.SaveChanges(); return(RedirectToAction("WaitingUsers", "MAccount")); } }
public ActionResult Delete(Category vm) { using (var ctx = new AuctionSiteDBEntities()) { var cat = new Category { ID = vm.ID }; ctx.Categories.Attach(cat); ctx.Categories.Remove(cat); ctx.SaveChanges(); return(RedirectToAction("Index", "Home")); } }
public ActionResult Add(Category vm) { using (var ctx = new AuctionSiteDBEntities()) { var cat = new Category() { Name = vm.Name, }; ctx.Categories.Add(cat); ctx.SaveChanges(); return(RedirectToAction("Index", "MCategories")); } }
// GET: Products/ByCat public ActionResult ByCat(int?id) { if (id.HasValue == false) { return(RedirectToAction("Index", "Home")); } using (var ctx = new AuctionSiteDBEntities()) { var list = ctx.Products.Where(p => p.IDCat == id) .ToList(); return(View(list)); } }
public ActionResult Delete(User vm) { using (var ctx = new AuctionSiteDBEntities()) { var user = new User { ID = vm.ID }; ctx.Users.Attach(user); ctx.Users.Remove(user); ctx.SaveChanges(); return(View()); } }
// GET: Products/Details public ActionResult Details(int?id) { if (id.HasValue == false) { return(RedirectToAction("Index", "Home")); } using (var ctx = new AuctionSiteDBEntities()) { var model = ctx.Products .Where(p => p.ID == id) .FirstOrDefault(); return(View(model)); } }