public ActionResult UpdateState(int orderId, int state) { if (!User.IsInRole("Admin")) { return(Json( new ResultWeb { Type = ResultWeb.ResultType.ACCESS_VIOLENCE } , JsonRequestBehavior.AllowGet)); } ResultWeb result = new ResultWeb(); Order order = db.Orders.Find(orderId); if (order == null) { result.Type = ResultWeb.ResultType.NOT_FOUND; return(Json(result, JsonRequestBehavior.AllowGet)); } // need: check authorize order.Status = (OrderStatus)state; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); result.Type = ResultWeb.ResultType.OK_UPDATE; return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult DeletePublisher(int?publisherId) { ResultWeb result = new ResultWeb(); if (ModelState.IsValid) { Publisher publisher = db.Publishers.Find(publisherId); if (publisher == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } db.Publishers.Remove(publisher); db.SaveChanges(); result.Type = ResultWeb.ResultType.OK_DELETE; } else { result.Type = ResultWeb.ResultType.FIELD_INVALID; } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult AddLine(int orderId, int proId, int count) { ResultWeb result = new ResultWeb(); Product product = db.Products.Find(proId); if (product == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } var details = db.OrderDetails.Where(od => od.OrderId == orderId); OrderDetail line = details.Where(od => od.ProductId == proId).FirstOrDefault(); if (line == null) { line = new OrderDetail { OrderId = orderId, ProductId = proId }; if (count > product.InStock) { line.Quantity = product.InStock; result.Type = ResultWeb.ResultType.OUT_OF_STOCK; } else { line.Quantity = count; result.Type = ResultWeb.ResultType.OK_ADD; } line.TotalAmount = product.Price * line.Quantity; db.OrderDetails.Add(line); db.SaveChanges(); } else { line.Quantity += count; if (line.Quantity > product.InStock) { line.Quantity = product.InStock; result.Type = ResultWeb.ResultType.OUT_OF_STOCK; } else { result.Type = ResultWeb.ResultType.OK_ADD; } line.TotalAmount = product.Price * line.Quantity; db.Entry(line).State = EntityState.Modified; db.SaveChanges(); } RecalculateOrderCost(orderId); return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteOrderDetail(int id) { ResultWeb result = new ResultWeb(); if (ModelState.IsValid) { var detail = db.OrderDetails.Find(id); if (detail == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } int orderId = detail.OrderId; db.OrderDetails.Remove(detail); db.SaveChanges(); RecalculateOrderCost(orderId); result.Type = ResultWeb.ResultType.OK_DELETE; } else { result.Type = ResultWeb.ResultType.FIELD_INVALID; } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteProduct(int id) { ResultWeb result = new ResultWeb(); Order cart = CheckOrderId(); Product yourProduct = db.Products.Find(id); if (yourProduct == null) { //result.Type = ResultWeb.ResultType.NOT_FOUND; return(Json(new { success = false , text = "Không tìm thấy sản phẩm" }, JsonRequestBehavior.AllowGet)); } var details = cart.OrderDetails; if (details == null) { return(Json(new { success = false , text = "Không tìm thấy chi tiết giỏ hàng" }, JsonRequestBehavior.AllowGet)); } OrderDetail yourDetail = details.Where(od => od.ProductId == id).FirstOrDefault(); if (yourDetail != null) { db.OrderDetails.Remove(yourDetail); db.SaveChanges(); RecalculateOrderCost(cart); //result.Type = ResultWeb.ResultType.OK_DELETE; return(Json(new { success = true , text = "Xoá thành công" }, JsonRequestBehavior.AllowGet)); } else { //result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(new { success = false , text = "Không tìm thấy chi tiết giỏ hàng" }, JsonRequestBehavior.AllowGet)); } }
public ActionResult UpdateLine(int detailId, int proId, int count) { ResultWeb result = new ResultWeb(); Product product = db.Products.Find(proId); if (product == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } OrderDetail detail = db.OrderDetails.Find(detailId); if (detail == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } detail.ProductId = proId; if (count > product.InStock) { detail.Quantity = product.InStock; result.Type = ResultWeb.ResultType.OUT_OF_STOCK; } else { detail.Quantity = count; result.Type = ResultWeb.ResultType.OK_ADD; } if (detail.Quantity > 0) { detail.TotalAmount = product.Price * detail.Quantity; db.Entry(detail).State = EntityState.Modified; db.SaveChanges(); } else { db.OrderDetails.Remove(detail); db.SaveChanges(); } PreventDetailDuplicate(detail.OrderId, proId); RecalculateOrderCost(detail.OrderId); result.Type = ResultWeb.ResultType.OK_UPDATE; return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult Complete(int Id) { ResultWeb result = new ResultWeb(); Order order = db.Orders.Find(Id); if (order == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } if (!(order.Status == OrderStatus.New && order.AnonymousUserId == null)) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } User user = db.Users.Where(u => u.Username == User.Identity.Name).FirstOrDefault(); if (!User.IsInRole("Admin")) { if (order.UserId != user.ID) { Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1); result.Type = ResultWeb.ResultType.ACCESS_VIOLENCE; return(Json(result, JsonRequestBehavior.AllowGet)); } } order.DeliveryDate = DateTime.Today; order.Status = OrderStatus.Completed; SubProduct(order); //db.Entry(order).State = EntityState.Modified; //db.SaveChanges(); result.Type = ResultWeb.ResultType.OK; int cookieId; if (Request.Cookies["order_id"] != null) { cookieId = int.Parse(Request.Cookies["order_id"].Value); if (cookieId == Id) { Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1); } } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult ArchiveOrder(int Id) { ResultWeb result = new ResultWeb(); if (!User.IsInRole("Admin")) { result.Type = ResultWeb.ResultType.ACCESS_VIOLENCE; return(Json(result, JsonRequestBehavior.AllowGet)); } if (ModelState.IsValid) { //var detailsBelongTheOrder = db.OrderDetails.Where(od => od.OrderId == Id); //db.OrderDetails.RemoveRange(detailsBelongTheOrder); //db.SaveChanges(); Order order = db.Orders.Find(Id); if (order == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } int cookieId; if (Request.Cookies["order_id"] != null) { cookieId = int.Parse(Request.Cookies["order_id"].Value); if (cookieId == Id) { Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1); } } //db.Orders.Remove(order); order.Status = OrderStatus.Canceled; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); result.Type = ResultWeb.ResultType.OK_DELETE; } else { result.Type = ResultWeb.ResultType.FIELD_INVALID; } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteProduct(int id) { ResultWeb result = new ResultWeb(); if (ModelState.IsValid) { Product product = db.Products.Find(id); if (product == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } int cookieId; if (Request.Cookies["product_id"] != null) { cookieId = int.Parse(Request.Cookies["product_id"].Value); if (cookieId == id) { Response.Cookies["product_id"].Expires = DateTime.Now.AddDays(-1); } } db.Products.Remove(product); db.SaveChanges(); result.Type = ResultWeb.ResultType.OK_DELETE; } else { result.Type = ResultWeb.ResultType.FIELD_INVALID; } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult UploadFiles() { ResultWeb result = new ResultWeb(); // Checking no of files injected in Request object if (Request.Files.Count > 0) { try { // Get all files from Request object HttpFileCollectionBase files = Request.Files; for (int i = 0; i < files.Count; i++) { //string path = AppDomain.CurrentDomain.BaseDirectory + "Uploads/"; //string filename = Path.GetFileName(Request.Files[i].FileName); HttpPostedFileBase file = files[i]; string fname = String.Empty; string fpath = String.Empty; string fstorePath = String.Empty; // Checking for Internet Explorer if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER") { string[] testfiles = file.FileName.Split(new char[] { '\\' }); fname = testfiles[testfiles.Length - 1]; } else { fname = file.FileName; } // Get the complete folder path and store the file inside it. do { fpath = HtmlExtensions.RandomString(10) + fname; fstorePath = Path.Combine(Server.MapPath("~/UploadFiles/"), fpath); fpath = @"~/UploadFiles/" + fpath; } while (System.IO.File.Exists(fstorePath)); file.SaveAs(fstorePath); result.StringValue = fpath; } result.Type = ResultWeb.ResultType.OK; return(Json(result, JsonRequestBehavior.AllowGet)); } catch { result.Type = ResultWeb.ResultType.SOMETHING_NOT_RIGHT; return(Json(result, JsonRequestBehavior.AllowGet)); } } else { result.Type = ResultWeb.ResultType.OK; result.StringValue = ""; return(Json(result, JsonRequestBehavior.AllowGet)); } }
public ActionResult MinusProduct(int id) { ResultWeb result = new ResultWeb(); Order cart = CheckOrderId(); Product yourProduct = db.Products.Find(id); if (yourProduct == null) { //result.Type = ResultWeb.ResultType.NOT_FOUND; return(Json(new { success = false , text = "Không tìm thấy sản phẩm" }, JsonRequestBehavior.AllowGet)); } var details = cart.OrderDetails; if (details == null) { return(Json(new { success = false , text = "Không tìm thấy chi tiết giỏ hàng" }, JsonRequestBehavior.AllowGet)); } OrderDetail yourDetail = details.Where(od => od.ProductId == id).FirstOrDefault(); if (yourDetail != null) { if (yourDetail.Quantity < 0) { yourDetail.Quantity = 0; yourDetail.TotalAmount = 0; db.Entry(yourDetail).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); RecalculateOrderCost(cart); //result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(new { success = false , text = "Lỗi chi tiết giỏ hàng không xác định" }, JsonRequestBehavior.AllowGet)); } if (yourDetail.Quantity == 0) { //result.Type = ResultWeb.ResultType.OK; return(Json(new { success = false , text = "Chi tiết giỏ hàng đã ở số nhỏ nhất" }, JsonRequestBehavior.AllowGet)); } string resultText = ""; bool theSuccess = false; if (yourProduct.InStock < yourDetail.Quantity - 1) { //result.Type = ResultWeb.ResultType.OUT_OF_STOCK; theSuccess = false; resultText = "Lỗi số lượng chi tiết giỏ hàng"; yourDetail.Quantity = yourProduct.InStock; } else { //result.Type = ResultWeb.ResultType.OK; theSuccess = true; resultText = "Bớt sản phẩm thành công"; yourDetail.Quantity -= 1; } yourDetail.TotalAmount = yourDetail.Quantity * yourProduct.Price; db.Entry(yourDetail).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); RecalculateOrderCost(cart); return(Json(new { success = theSuccess , text = resultText }, JsonRequestBehavior.AllowGet)); } else { //result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(new { success = false , text = "Lỗi đơn hàng không hợp lệ" }, JsonRequestBehavior.AllowGet)); } }
public ActionResult AddProduct(int id) { ResultWeb result = new ResultWeb(); Order cart = CheckOrderId(); Product yourProduct = db.Products.Find(id); if (yourProduct == null) { //result.Type = ResultWeb.ResultType.NOT_FOUND; return(Json(new { success = false , text = "Không tìm thấy sản phẩm này" }, JsonRequestBehavior.AllowGet)); } var details = cart.OrderDetails; if (details == null) { details = new List <OrderDetail>(); } OrderDetail yourDetail = details.Where(od => od.ProductId == id).FirstOrDefault(); // trường hợp đã thêm sản phẩm này rồi, thêm nó vào lần nữa if (yourDetail != null) { if (yourProduct.InStock <= yourDetail.Quantity) { //result.Type = ResultWeb.ResultType.OUT_OF_STOCK; return(Json(new { success = false, text = "Sản phẩm không đủ hàng" }, JsonRequestBehavior.AllowGet)); } yourDetail.Quantity += 1; yourDetail.TotalAmount = yourDetail.Quantity * yourProduct.Price; db.Entry(yourDetail).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } else// trường hợp chưa có sản phẩm này, thêm vào giỏ { if (yourProduct.InStock <= 0) { //result.Type = ResultWeb.ResultType.OUT_OF_STOCK; return(Json(new { success = false , text = "Sản phẩm không đủ hàng" }, JsonRequestBehavior.AllowGet)); } yourDetail = new OrderDetail { OrderId = cart.ID, ProductId = yourProduct.ID, Quantity = 1, TotalAmount = yourProduct.Price }; db.OrderDetails.Add(yourDetail); db.SaveChanges(); } RecalculateOrderCost(cart); result.Type = ResultWeb.ResultType.OK; return(Json(new { success = true , text = "thêm sản phẩm vào giỏ thành công" }, JsonRequestBehavior.AllowGet)); }
public ActionResult Checkout(int id) { ResultWeb result = new ResultWeb(); Order order = db.Orders.Find(id); if (order == null) { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } switch (order.Status) { case OrderStatus.New: { SubProduct(order); order.Status = OrderStatus.Completed; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); result.Type = ResultWeb.ResultType.OK; } break; case OrderStatus.Packing: { order.Status = OrderStatus.Delivering; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); result.Type = ResultWeb.ResultType.OK; } break; case OrderStatus.Delivering: { order.DeliveryDate = DateTime.Today; order.Status = OrderStatus.Completed; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); result.Type = ResultWeb.ResultType.OK; } break; case OrderStatus.Pending: { SubProduct(order); order.Status = OrderStatus.Packing; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); result.Type = ResultWeb.ResultType.OK; } break; } int cookieId; if (Request.Cookies["order_id"] != null) { cookieId = int.Parse(Request.Cookies["order_id"].Value); if (cookieId == id) { if (order.AnonymousUserId != null) {// this mean: this is a order from online shop Order aPendingOrder = db.Orders.Where(o => o.Status == OrderStatus.Pending).FirstOrDefault(); if (aPendingOrder != null) { Response.Cookies["order_id"].Value = aPendingOrder.ID.ToString(); Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(7); } else { Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1); } } else { Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1); } } } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult AddLine(int orderId, int proId, int count) { ResultWeb result = new ResultWeb(); Product product = db.Products.Find(proId); if (product == null)// the product you are going to add, not found { result.Type = ResultWeb.ResultType.FIELD_INVALID; return(Json(result, JsonRequestBehavior.AllowGet)); } // check if the product you are going to add, exist on the current order var details = db.OrderDetails.Where(od => od.OrderId == orderId); OrderDetail line = details.Where(od => od.ProductId == proId).FirstOrDefault(); if (line == null)// doesn't exist? create a new details for the product { line = new OrderDetail { OrderId = orderId, ProductId = proId }; if (count > product.InStock) { line.Quantity = product.InStock; result.Type = ResultWeb.ResultType.OUT_OF_STOCK; } else { line.Quantity = count; result.Type = ResultWeb.ResultType.OK_ADD; } if (line.Quantity > 0) { line.TotalAmount = product.Price * line.Quantity; db.OrderDetails.Add(line); db.SaveChanges(); } } else// otherwise { line.Quantity += count; if (line.Quantity > product.InStock) { line.Quantity = product.InStock; result.Type = ResultWeb.ResultType.OUT_OF_STOCK; } else { result.Type = ResultWeb.ResultType.OK_ADD; } if (line.Quantity > 0) { line.TotalAmount = product.Price * line.Quantity; db.Entry(line).State = EntityState.Modified; db.SaveChanges(); } else { db.OrderDetails.Remove(line); db.SaveChanges(); } } RecalculateOrderCost(orderId); return(Json(result, JsonRequestBehavior.AllowGet)); }