public IActionResult Order() { if (HttpContext.Session.Get("User") == null) { return(RedirectToAction("Login", "Account")); } //Maträtter List <OrderViewModels> menyLista = new List <OrderViewModels>(); var m = _context.Matratt.ToList(); foreach (var i in m) { OrderViewModels matratt = new OrderViewModels(); List <Produkt> inLista = new List <Produkt>(); matratt.Matratt = i; var mp = _context.MatrattProdukt.Where(z => z.MatrattId == i.MatrattId).Include(k => k.Produkt).ToList(); foreach (var a in mp) { var ing = new Produkt(); ing.ProduktId = a.ProduktId; ing.ProduktNamn = a.Produkt.ProduktNamn; inLista.Add(ing); } matratt.ProduktLista = inLista; menyLista.Add(matratt); } return(View(menyLista)); }
public void AddNewOrder(OrderViewModels order) { using (ShopDBEntities db = new ShopDBEntities()) { //string[] formats = { "dd/MM/yyyy" }; //DateTime oDate = new DateTime();// //oDate = DateTime.Parse(order.OrderDate).Date; //.Pars e(order.OrderDate); Order model = new Order(); model.CustomerId = order.CustomerId; model.OrderDate = order.OrderDate; model.OrderNumber = order.OrderNumber; model.TotalAmount = order.TotalAmount; db.Order.Add(model); db.SaveChanges(); foreach (var item in order.ListOrderItem) { OrderItem modelItem = new OrderItem(); modelItem.OrderId = model.Id; modelItem.ProductId = item.ProductId; modelItem.Quantity = item.Quantity; modelItem.UnitPrice = item.UnitPrice; db.OrderItem.Add(modelItem); db.SaveChanges(); } } }
public IActionResult Post([FromBody] OrderViewModels model) { try { if (ModelState.IsValid) { var newOrder = _mapper.Map <OrderViewModels, Order>(model); if (newOrder.OrderDate == DateTime.MinValue) { newOrder.OrderDate = DateTime.Now; } _respository.AddEntity(newOrder); if (_respository.SaveAll()) { return(Created($"api/Orders/{newOrder.Id}", _mapper.Map <Order, OrderViewModels>(newOrder))); } else { return(BadRequest($"Failed to save new order")); } } else { return(BadRequest(ModelState)); } } catch (Exception er) { _logger.LogError($" Failed to save a new order {er}"); return(BadRequest()); } }
public IActionResult Post([FromBody] OrderViewModels model) { try { if (ModelState.IsValid) { var newOrder = _mapper.Map <OrderViewModels, Order>(model); if (newOrder.OrderDate == DateTime.MinValue) { newOrder.OrderDate = DateTime.Now; } _repository.AddEntity(newOrder); if (_repository.SaveAll()) { return(Created($"/api/orders/{newOrder.Id}", _mapper.Map <Order, OrderViewModels>(newOrder))); } } else { return(BadRequest(ModelState)); } } catch (Exception ex) { _logger.LogError($"Falha para a salvar uma nova order: {ex}"); } return(BadRequest("Falha para salvar nova ordem")); }
// GET: Orders/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } OrderModels orderModels = db.OrderModels.Find(id); if (orderModels == null) { return(HttpNotFound()); } string user_name = User.Identity.GetUserName(); if (orderModels.Email != user_name) { return(HttpNotFound()); } var resultProductsJoin = db.ProductOrderModels.Where(s => s.CartId == orderModels.Id).ToList(); var resultProducts = db.ProductsModels.Join(db.ProductOrderModels, s => s.Id, sa => sa.ProductId, (s, sa) => new { products = s, productsJoin = sa }).Where(b => b.productsJoin.CartId == orderModels.Id).Select(ssa => ssa.products); var model = new OrderViewModels() { Order = orderModels, ProductsJoin = resultProductsJoin, Products = resultProducts }; return(View(model)); }
public ActionResult Index() { string strCategories = svc.GetCategories(); OrderViewModels model = new OrderViewModels(); model.Categories = JsonConvert.DeserializeObject <List <Category> >(strCategories); return(View(model)); }
public ActionResult Index([Bind(Include = "CustomerID, EmployeeID, ProductID, UnitPice, Quantity ")] OrderViewModels order) { ProductsService.Order oOrder = new ProductsService.Order() { ProductID = order.ProductID, UnitPrice = order.UnitPrice, Quantity = order.Quantity }; string response = svc.SaveOrder(oOrder); return(View()); }
// GET: Orders public ActionResult Index(string userID, string status) { OrderViewModels model = new OrderViewModels(); model.UserID = userID; model.Status = status; model.Orders = OrdersService.Instance.SearchOrders(userID, status); var totalRecords = OrdersService.Instance.SearchOrdersCount(userID, status); return(View(model)); }
public void createOrder(OrderViewModels order) { using (ShopDBEntities db = new ShopDBEntities()) { Order model = new Order(); model.Id = order.Id; model.OrderDate = order.OrderDate; model.OrderNumber = order.OrderNumber; model.TotalAmount = order.TotalAmount; //model. db.Order.Add(model); db.SaveChanges(); } }
public List <OrderViewModels> GetAllOrder() { using (ShopDBEntities db = new ShopDBEntities()) { var list = db.Order.ToList(); List <OrderViewModels> listVM = new List <OrderViewModels>(); foreach (var item in list) { OrderViewModels viewModel = new OrderViewModels(); viewModel.Id = item.Id; viewModel.CustomerName = item.Customer.FirstName + " " + item.Customer.LastName; viewModel.OrderDate = item.OrderDate; viewModel.OrderNumber = item.OrderNumber; viewModel.TotalAmount = item.TotalAmount; listVM.Add(viewModel); } return(listVM); } }
// GET: Orders/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } int idx = id ?? 0; string ApiEndPoint = ApiUrl + "api/OrderApi/Get/" + idx; HttpClient client = new HttpClient(); HttpResponseMessage response = client.GetAsync(ApiEndPoint).Result; string result = response.Content.ReadAsStringAsync().Result.ToString(); OrderViewModels orderVM = JsonConvert.DeserializeObject <OrderViewModels>(result); if (orderVM == null) { return(HttpNotFound()); } return(View(orderVM)); }
//searching public List <OrderViewModels> SearchBy(string orderNumber, string date, string CustId) { using (ShopDBEntities db = new ShopDBEntities()) { var list = db.Order.ToList(); List <OrderViewModels> listVM = new List <OrderViewModels>(); DateTime tanggal = new DateTime(); if (!string.IsNullOrEmpty(date)) { tanggal = DateTime.Parse(date.Replace("-", "/")).Date; } int idCust = 0; if (!string.IsNullOrEmpty(CustId)) { idCust = int.Parse(CustId); } foreach (var item in list) { if (((item.OrderDate == tanggal) || string.IsNullOrEmpty(date) || string.IsNullOrWhiteSpace(date)) && (item.OrderNumber.Contains(orderNumber) || string.IsNullOrEmpty(orderNumber) || string.IsNullOrWhiteSpace(orderNumber)) && ((item.CustomerId == idCust && idCust != 0) || string.IsNullOrEmpty(CustId) || string.IsNullOrWhiteSpace(CustId))) { OrderViewModels viewModel = new OrderViewModels(); viewModel.Id = item.Id; viewModel.CustomerName = item.Customer.FirstName + " " + item.Customer.LastName; viewModel.OrderDate = item.OrderDate; viewModel.OrderNumber = item.OrderNumber; viewModel.TotalAmount = item.TotalAmount; listVM.Add(viewModel); } } return(listVM); } }
public OrderViewModels GetDetailOrderById(int id) { using (ShopDBEntities db = new ShopDBEntities()) { OrderViewModels model = new OrderViewModels(); model = (from a in db.Order join b in db.Customer on a.CustomerId equals b.Id where a.Id == id select new OrderViewModels { Id = a.Id, OrderDate = a.OrderDate, OrderNumber = a.OrderNumber, CustomerName = b.FirstName + " " + b.LastName, CustomerId = b.Id, TotalAmount = a.TotalAmount } ).Single(); model.ListOrderItem = (from a in db.Order join b in db.OrderItem on a.Id equals b.OrderId join c in db.Product on b.ProductId equals c.Id where a.Id == id select new OrderItemViewModels { Id = b.Id, OrderId = b.OrderId, OrderNumber = a.OrderNumber, ProductId = c.Id, ProductName = c.ProductName, UnitPrice = b.UnitPrice, Quantity = b.Quantity, TotalAmount = b.UnitPrice * b.Quantity } ).ToList(); return(model); } }
private OrderViewModels OrderViewModels(Cart shoppingCart) { var discount = 0; var user = _userManager.FindById(User.Identity.GetUserId <int>()); if (user != null) { discount = user.Rabat; } var productList = new List <OrderItem>(); decimal totalValue = 0; decimal weight = 0; foreach (var item in shoppingCart.Lines) { var product = _appRepository.GetSingle <Products>(x => x.ProductId == item.Id); if (product == null) { continue; } var priceFloored = CalcPrice(product.Price, product.Promotion); productList.Add(new OrderItem { Name = product.Name, Price = priceFloored.ToString("c"), Quantity = item.Quantity, TotalValue = (priceFloored * item.Quantity).ToString("c"), Packing = product.Packing }); weight += (product.Weight ?? 0) * item.Quantity; totalValue += (priceFloored * item.Quantity); } var orderShippingRadios = _appRepository.GetAll <ShippingType>(j => j.Active && j.MaxWeight > weight).Select(x => new OrderViewRadioOption { Id = x.ShippingId, Price = totalValue > 250?0:x.ShippingPrice, Text = x.ShippingName, Description = x.ShippingDescription }).ToList(); var orderPaymentRadios = _appRepository.GetAll <PaymentType>(j => j.Active).Select(x => new OrderViewRadioOption { Id = x.PaymentId, Price = totalValue > 250 ? 0 : x.PaymentPrice, Text = x.PaymentName, Description = x.PaymentDescription }).ToList(); var model = new OrderViewModels { OrderProductList = productList, TotalValue = totalValue, Discount = discount, DiscountValue = Convert.ToDecimal((totalValue * discount) / 100).ToString("c").Replace(",", "."), OrderViewPaymentModel = new OrderViewRadioModel { Option = orderPaymentRadios, SelectedOption = shoppingCart.PaymentId.ToString() }, OrderViewShippingModel = new OrderViewRadioModel { Option = orderShippingRadios, SelectedOption = shoppingCart.ShippingId.ToString() } }; return(model); }
// // GET: /Order/ public ActionResult Index() { OrderViewModels model = new OrderViewModels(); return(View(model)); }
public async Task <IActionResult> AddToCart(OrderViewModels model) { if (User.Identity.IsAuthenticated == true) { var user = await _userManager.GetUserAsync(HttpContext.User); // User logined var cart = _context.Carts .SingleOrDefault(x => string.IsNullOrEmpty(x.Status) && x.UserId == user.Id); if (cart == null) { // Create cart cart = new Cart { CreatedDate = DateTime.Now, CustomerName = user.UserName, CustomerEmail = user.Email, UserId = user.Id, Total = 0, Status = null, CustomerPhoneNumber = user.PhoneNumber }; _context.Entry(cart).State = Microsoft.EntityFrameworkCore.EntityState.Added; } // Create order var order = new Order { UserId = user.Id, ProductId = model.Id, CartId = cart.Id, Quantity = model.Quantity, Buy = false }; _context.Entry(order).State = Microsoft.EntityFrameworkCore.EntityState.Added; await _context.SaveChangesAsync(); var models = _context.Carts .Include(x => x.Orders) .ThenInclude(x => x.Product) .SingleOrDefault(x => string.IsNullOrEmpty(x.Status) && x.UserId == user.Id); if (models != null) { var cartViewModels = new CartViewModels { Id = models.Id, ItemsCount = models.Orders.Count, Total = models.Orders.Sum(x => x.GetTotal()), Status = null }; return(Json(new { success = 1, itemCount = cartViewModels.ItemsCount, total = cartViewModels.TotalCurency() })); } } else { if (HttpContext.Session.GetString("SESSION_CART") == null || string.IsNullOrEmpty(HttpContext.Session.GetString("SESSION_CART")) == true) { // Create cart var cart = new Cart { CreatedDate = DateTime.Now, Total = 0, Status = null, }; // Create order var order = new Order { Id = 1, ProductId = model.Id, CartId = cart.Id, Quantity = model.Quantity, Buy = false }; cart.Orders.Add(order); HttpContext.Session.SetString("SESSION_CART", JsonConvert.SerializeObject(cart)); } else { var cart = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART")); // Create order var order = new Order { Id = cart.Orders.Count() + 1, ProductId = model.Id, CartId = cart.Id, Quantity = model.Quantity, Buy = false }; cart.Orders.Add(order); HttpContext.Session.SetString("SESSION_CART", JsonConvert.SerializeObject(cart)); } var models = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART")); foreach (var item in models.Orders) { var p = _context.Products.SingleOrDefault(x => x.Id == item.ProductId); if (p != null) { item.Product = p; } } if (models != null) { var cartViewModels = new CartViewModels { Id = models.Id, ItemsCount = models.Orders.Count, Total = models.Orders.Sum(x => x.GetTotal()), Status = null }; return(Json(new { success = 1, itemCount = cartViewModels.ItemsCount, total = cartViewModels.TotalCurency() })); } } return(Json(new { success = 0, message = "Error" })); }
public ActionResult Create([Bind(Include = "Id,OrderId,Firstname,Lastname,Address,PostalCode,City,PhoneNumber")] OrderDetail orderDetail) { if (ModelState.IsValid) { if (Session[User.Identity.Name] != null) { OrderDetailViewModels orderDetailViews = new OrderDetailViewModels(); Sessions temp = (Sessions)Session[User.Identity.Name]; //Generera vår unika id, inte bästa sättet men orkade ej byta alla int till sträng när jag såg guid generator int Id = new Random().Next(); Product product; orderDetail.Id = Id; //vet ej varför men blir error utan? :S orderDetail.OrderId = Id; //jobbigt men vi måste göra en kopia av vyn för kvitto som innehåller applista orderDetailViews.Id = Id; orderDetailViews.OrderId = Id; orderDetailViews.Firstname = orderDetail.Firstname; orderDetailViews.Lastname = orderDetail.Lastname; orderDetailViews.Address = orderDetail.Address; orderDetailViews.PostalCode = orderDetail.PostalCode; orderDetailViews.City = orderDetail.City; orderDetailViews.PhoneNumber = orderDetail.PhoneNumber; orderDetailViews.Apps = new List <Product>(); //Vi måste spara varje app i databasen, går ju inte att spara lista i ett fält i databasen :O OrderItem orderItem = new OrderItem { OrderId = Id }; //Ny order, här sparar vi info om själva ordern, datum, totalpris m.m, denna behövs inte heller bara om vi skulle cacha allt i en lista som går igenom hela programmet OrderViewModels orderViews = new OrderViewModels { OrderTotalPrice = temp.TotalPrice, UserIdentity = User.Identity.Name, OrderId = Id, Apps = new List <int>() }; //Samma som uppe fast för databasen utan applistan Order order = new Order { OrderTotalPrice = temp.TotalPrice, UserIdentity = User.Identity.Name, OrderId = Id, }; //Loopar igenom apparna vi har från session -> appkorg foreach (var item in temp.Apps.Keys.ToList()) { //sparar appen i ett temp-objekt product = db.Products.Find(item); //extra kontroll if (product != null) { //spara appen så vi kan visa kvittot med appen sen if (!orderDetailViews.Apps.Contains(product)) { orderDetailViews.Apps.Add(product); } orderItem.AppId = product.Id; //Sparar appen som tillhör denna orderId i databasen db.OrderItems.Add(orderItem); //vi måste spara varje gång i loopen annars ersätts ju objektet varje gång utan att det sparas :P db.SaveChanges(); } } db.Orders.Add(order); /* vi måste ju rensa varukorgen också :o*/ temp.Apps.Clear(); temp.TotalPrice = 0; //Ersätter gamla med nya uppdaterade session Session.Add(User.Identity.Name, temp); db.OrderDetails.Add(orderDetail); db.SaveChanges(); return(View("Checkout", orderDetailViews)); } } return(View(orderDetail)); }
public async Task <IActionResult> Index(int productPage = 1, string searchName = null, string searchEmail = null, string searchPhone = null, string searchDate = null) { System.Security.Claims.ClaimsPrincipal currentUser = this.User; var claimsIdentity = (ClaimsIdentity)this.User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); OrderViewModels orderVM = new OrderViewModels() { Orders = new List <Models.Orders>() }; StringBuilder param = new StringBuilder(); param.Append("/Admin/Orders?productPage=:"); param.Append("&searchName="); if (searchName != null) { param.Append(searchName); } param.Append("&searchEmail="); if (searchEmail != null) { param.Append(searchEmail); } param.Append("&searchPhone="); if (searchPhone != null) { param.Append(searchPhone); } param.Append("&searchDate="); if (searchDate != null) { param.Append(searchDate); } orderVM.Orders = _db.Orders.Include(a => a.Customers).Include(a => a.SalerPerson).ToList(); if (searchName != null) { orderVM.Orders = orderVM.Orders.Where(a => a.Customers.CustomerName.ToLower().Contains(searchName.ToLower())).ToList(); } if (searchEmail != null) { orderVM.Orders = orderVM.Orders.Where(a => a.Customers.Email.ToLower().Contains(searchEmail.ToLower())).ToList(); } if (searchPhone != null) { orderVM.Orders = orderVM.Orders.Where(a => a.Customers.Phone.ToLower().Contains(searchPhone.ToLower())).ToList(); } if (searchDate != null) { try { DateTime appDate = Convert.ToDateTime(searchDate); orderVM.Orders = orderVM.Orders.Where(a => a.Date.ToShortDateString().Equals(appDate.ToShortDateString())).ToList(); } catch (Exception ex) { } } var count = orderVM.Orders.Count; orderVM.Orders = orderVM.Orders.OrderBy(p => p.Date) .Skip((productPage - 1) * PageSize) .Take(PageSize).ToList(); orderVM.PagingInfo = new PagingInfo { CurrentPage = productPage, ItemsPerPage = PageSize, TotalItems = count, urlParam = param.ToString() }; return(View(orderVM)); }