public void AddBestallning(Bestallning B) { B.Kund = null; var BMList = new List <BestallningMatratt>(); foreach (var BM in B.BestallningMatratt) { BMList.Add(BM); } B.BestallningMatratt = null; _Repository.Bestallning.Add(B); _Repository.SaveChanges(); var senast = _Repository.Bestallning.ToList(); var senastID = senast.OrderByDescending(x => x.BestallningDatum).First().BestallningId; foreach (var BM in BMList) { var BestallMat = new BestallningMatratt(); BestallMat.Antal = BM.Antal; BestallMat.MatrattId = BM.MatrattId; BestallMat.BestallningId = senastID; _Repository.BestallningMatratt.Add(BestallMat); } _Repository.SaveChanges(); }
public List <BestallningMatratt> GetKopplingsTabell() { var model = new OrderCheckOut(); var orderValues = HttpContext.Session.GetString("Order"); var matratter = JsonConvert.DeserializeObject <List <Matratt> >(orderValues); foreach (var mat in matratter) { var isAlready = model.ListOfMatrattToOrder.SingleOrDefault(p => p.MatrattId == mat.MatrattId); if (isAlready == null) { var antal = _context.Matratt.Count(m => m.MatrattId == mat.MatrattId); var koppling = new BestallningMatratt(); koppling.MatrattId = mat.MatrattId; koppling.Antal = antal; model.ListOfMatrattToOrder.Add(koppling); } else { var koppling = model.ListOfMatrattToOrder.SingleOrDefault(m => m.MatrattId == mat.MatrattId); koppling.Antal = koppling.Antal + 1; } } return(model.ListOfMatrattToOrder); }
public Bestallning CreateBestallning() { Bestallning B = new Bestallning(); int TotalSum = 0; foreach (var V in _Session.GetCart()) { var BM = new BestallningMatratt(); if (B.BestallningMatratt.Where(x => x.MatrattId == V.MatrattId).FirstOrDefault() != null) { B.BestallningMatratt.Where(x => x.MatrattId == V.MatrattId).FirstOrDefault().Antal++; } else { BM.Bestallning = B; BM.Matratt = V; BM.MatrattId = V.MatrattId; BM.Antal = 1; B.BestallningMatratt.Add(BM); } TotalSum += V.Pris; } var kund = _Session.GetSessionKund(); B.KundId = kund.KundId; B.Kund = kund; B.BestallningDatum = DateTime.Now; B.Levererad = false; B.Totalbelopp = TotalSum; return(B); }
public IActionResult Checkout() { var temp = Request.Cookies["Cart"]; var temp2 = Request.Cookies["LoggedIn"]; var foodList = JsonConvert.DeserializeObject <List <Matratt> >(temp); var customer = JsonConvert.DeserializeObject <Kund>(temp2); var order = new Bestallning() { BestallningDatum = DateTime.Now, KundId = customer.KundId, Levererad = true, Totalbelopp = foodList.Sum(x => x.Pris) }; var dataAccess = new DataAccess(); dataAccess.CreateOrder(_context, order); while (foodList.Count > 0) { var connection = new BestallningMatratt() { Antal = foodList.Count(x => x.MatrattId == foodList[0].MatrattId), MatrattId = foodList[0].MatrattId, Bestallning = order }; dataAccess.CreateOrderConnection(_context, connection); foodList = foodList.Where(x => x.MatrattId != foodList[0].MatrattId).ToList(); } return(View()); }
public async Task <IActionResult> BuyConfirmed() { ApplicationUser user = await _usermanager.GetUserAsync(User); var cartItems = GetCartItems(); int totalPrice = cartItems.Sum(x => x.Pris); if (User.IsInRole("PremiumUser") && cartItems.Count >= 3) { totalPrice = Convert.ToInt32(totalPrice * 0.8); user.Points += (cartItems.Count * 10); if (user.Points >= 100) { totalPrice = totalPrice - cartItems.OrderBy(m => m.Pris).First().Pris; user.Points = 0; } await _usermanager.UpdateAsync(user); } var order = new Bestallning() { Id = user.Id, BestallningDatum = DateTime.Now, Levererad = false, Totalbelopp = totalPrice }; _context.Bestallnings.Add(order); _context.SaveChanges(); var sortedList = cartItems.GroupBy(m => m.MatrattId).Select(m => m.First()).ToList(); foreach (var item in sortedList) { var ratt = new BestallningMatratt() { MatrattId = item.MatrattId, BestallningId = order.BestallningId, Antal = cartItems.Where(m => m.MatrattId == item.MatrattId).ToList().Count }; _context.BestallningMatratts.Add(ratt); _context.SaveChanges(); } _context.SaveChanges(); HttpContext.Session.SetString("cart", ""); return(View()); }
public async Task <ActionResult> Sent(Kund kund) { if (HttpContext.Session.GetString("KundId") != null) { var kundId = HttpContext.Session.GetString("KundId"); var convert = Convert.ToInt32(kundId); var value = (HttpContext.Session.GetString("Varukorg")); FoodList = JsonConvert.DeserializeObject <List <Matratt> >(value); var date = DateTime.Now; var order = new Bestallning { BestallningDatum = date, Totalbelopp = FoodList.Sum(x => x.Pris), Levererad = false, KundId = Convert.ToInt32(convert) }; _context.Bestallning.Add(order); var listSum = FoodList; var tempList = FoodList.OrderBy(x => x.MatrattId); foreach (var sum in tempList.Select(x => x.MatrattId).Distinct()) { var doneOrder = new BestallningMatratt { BestallningId = order.BestallningId, Antal = listSum.Where(x => x.MatrattId == sum).Count(), MatrattId = sum }; _context.BestallningMatratt.Add(doneOrder); } await _context.SaveChangesAsync(); var dish = _context.Bestallning.Where(x => x.BestallningId == order.BestallningId).ToList(); var customer = _context.Kund.Where(x => x.KundId == convert).ToList(); var display = new MenuModel { Orders = dish, CustomerList = customer, Dishes = FoodList, }; return(View(display)); // await tomasosContext.ToListAsync() } else { return(RedirectToAction("Login", "Kunds")); } }
public async Task <ActionResult> PlaceOrder() { string sessionString = HttpContext.Session.GetString("Order"); if (sessionString != null) { BestallningMatratt orderDish = new BestallningMatratt(); var dishes = JsonConvert.DeserializeObject <List <Matratt> >(sessionString); var order = await NewOrderAsync(dishes); foreach (var dish in dishes) { if (order.BestallningMatratt.Where(o => o.MatrattId == dish.MatrattId).Count() == 0) { orderDish = new BestallningMatratt { MatrattId = dish.MatrattId, Antal = 1 }; order.BestallningMatratt.Add(orderDish); } else { order.BestallningMatratt.Single(o => o.MatrattId == dish.MatrattId).Antal++; } } // Change to altered prices, depending on bonus points and how many dishes var user = await GetCurrentUserAsync(); if (User.IsInRole("Premium")) { if (user.Points == null) { user.Points = 0; } user.Points += 10 * dishes.Count; if (user.Points >= 100) { order.Totalbelopp -= dishes.Max(d => d.Pris); user.Points -= 100; } if (dishes.Count >= 3) { order.Totalbelopp = (int)(order.Totalbelopp * 0.8); } } _context.Add(order); await _context.SaveChangesAsync(); HttpContext.Session.Remove("Order"); return(View("ThankYou")); } else { return(RedirectToAction("Cart")); } }
public IActionResult AddProduct(int dishID) { //Här läggs produkten till i varukorgen var product = _context.Matratt.SingleOrDefault(m => m.MatrattId == dishID); List <BestallningMatratt> cart; if (HttpContext.Session.GetString("Varukorg") == null) { cart = new List <BestallningMatratt>(); } else { //Hämta listan från Sessionen var serializedValue = HttpContext.Session.GetString("Varukorg"); cart = JsonConvert.DeserializeObject <List <BestallningMatratt> >(serializedValue); } if (cart.Any(x => x.MatrattId == dishID)) { cart.SingleOrDefault(x => x.MatrattId == dishID).Antal++; } else { var addMore = new BestallningMatratt() { Antal = 1, MatrattId = dishID, Matratt = product }; cart.Add(addMore); } int numberOfItems = 0; if (cart == null) { numberOfItems = 0; } else { foreach (var item in cart) { numberOfItems += item.Antal; } } var temp = JsonConvert.SerializeObject(cart); HttpContext.Session.SetString("Varukorg", temp); return(PartialView("_CartPartial", numberOfItems)); }
public async Task AddToCart(int dishId) { Matratt dish = await _repository.SelectById <Matratt>(dishId); Bestallning currentOrder = _repository.GetUserOrder(this.User.FindFirstValue(ClaimTypes.NameIdentifier)); if (currentOrder == null) { Bestallning order = new Bestallning(); order.BestallningDatum = DateTime.Now; order.Totalbelopp = dish.Pris; order.Levererad = false; order.KundId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); await _repository.CreateAsync <Bestallning>(order); Bestallning orderId = _repository.GetUserOrder(this.User.FindFirstValue(ClaimTypes.NameIdentifier)); BestallningMatratt orderDish = new BestallningMatratt(); orderDish.MatrattId = dish.MatrattId; orderDish.BestallningId = orderId.BestallningId; await _repository.CreateAsync <BestallningMatratt>(orderDish); } else { BestallningMatratt duplicateCheck = _repository.CheckForDishDuplicate(currentOrder.BestallningId, dish.MatrattId); if (duplicateCheck == null) { BestallningMatratt orderDish = new BestallningMatratt(); orderDish.MatrattId = dish.MatrattId; orderDish.BestallningId = currentOrder.BestallningId; await _repository.CreateAsync <BestallningMatratt>(orderDish); } else { BestallningMatratt addTotalForDish = duplicateCheck; int currentTotal = addTotalForDish.Antal; currentTotal += 1; addTotalForDish.Antal = currentTotal; await _repository.UpdateAsync <BestallningMatratt>(addTotalForDish); } int totalPrice = currentOrder.Totalbelopp; totalPrice += dish.Pris; currentOrder.Totalbelopp = totalPrice; await _repository.UpdateAsync <Bestallning>(currentOrder); } }
public async Task <bool> OrderAsync(CartViewModel model, ApplicationUser user) { var order = new Bestallning(); var customer = await _dbService.GetCustomerAsync(user.Id); order.Kund = customer; order.BestallningDatum = DateTime.Now; order.KundId = customer.KundId; order.Levererad = false; if (model.BonusPoints >= 100) { if (model.Dishes.Any(e => e.DishId == 1104)) { model.Dishes.Find(e => e.DishId == 1104).Quantity++; } else { var dish = await GetDishAsync(1104); dish.Quantity++; model.Dishes.Add(dish); } model.BonusPoints -= 100; } foreach (var dish in model.Dishes) { var matratt = await _dbService.GetMatrattAsync(dish.DishId); var orderDetail = new BestallningMatratt() { Antal = dish.Quantity, Bestallning = order, Matratt = matratt, MatrattId = matratt.MatrattId }; order.BestallningMatratt.Add(orderDetail); } order.Totalbelopp = user.IsPremium ? model.PremiumPrice : model.TotalPrice; var result = await _dbService.AddNewOrderAsync(order); if (result) { user.BonusPoints = model.BonusPoints; } return(await Task.FromResult <bool>(true)); }
public async Task <IActionResult> CheckoutConfirm() { string cartJSON = HttpContext.Session.GetString("ProductCart"); List <Matratt> Matratter = JsonConvert.DeserializeObject <List <Matratt> >(cartJSON); ApplicationUser user = await _usermanager.FindByNameAsync(User.Identity.Name); Kund currentKund = _context.Kunds.SingleOrDefault(x => x.Id == user.Id); Bestallning bestallning = new Bestallning(); bestallning.BestallningDatum = DateTime.Now; bestallning.Totalbelopp = Matratter.Sum(p => p.Pris); bestallning.Levererad = false; bestallning.KundId = currentKund.KundId; _context.Bestallnings.Add(bestallning); _context.SaveChanges(); Bestallning currentBestallning = _context.Bestallnings.SingleOrDefault(x => x.BestallningDatum == bestallning.BestallningDatum); List <int> existingMatrattId = new List <int>(); foreach (var matratt in Matratter) { //check for duplicates, either update amount or create new if (existingMatrattId.Contains(matratt.MatrattId)) { BestallningMatratt existingBestallningmatratt = _context.BestallningMatratts.SingleOrDefault(x => x.BestallningId == currentBestallning.BestallningId && x.MatrattId == matratt.MatrattId); existingBestallningmatratt.Antal++; _context.BestallningMatratts.Update(existingBestallningmatratt); } else { existingMatrattId.Add(matratt.MatrattId); BestallningMatratt bestallningmatratt = new BestallningMatratt(); bestallningmatratt.BestallningId = currentBestallning.BestallningId; bestallningmatratt.MatrattId = matratt.MatrattId; bestallningmatratt.Antal = 1; _context.BestallningMatratts.Add(bestallningmatratt); } _context.SaveChanges(); } //empty cart HttpContext.Session.Remove("ProductCart"); return(View("Accepted")); }
public void AddBestallningMatrattRelationToDb(Bestallning currentOrder, List <Matratt> dishesToOrderDb, IEnumerable <int> dishesIdnWithoutDuplicates) { foreach (var dishId in dishesIdnWithoutDuplicates) { var bestallningMatrattRelation = new BestallningMatratt { BestallningId = currentOrder.BestallningId, MatrattId = dishId, Antal = dishesToOrderDb.Count(dish => dish.MatrattId == dishId) }; _context.BestallningMatratt.Add(bestallningMatrattRelation); } }
public IActionResult UserCheckout(UserViewModel model) { Bestallning newOrder = new Bestallning(); newOrder.Totalbelopp = model.CurrentOrder.Totalbelopp; newOrder.BestallningDatum = DateTime.Now; newOrder.Id = model.CurrentOrder.Id; newOrder.Levererad = false; _context.Add(newOrder); _context.SaveChanges(); int orderID = _context.Bestallnings.Where(b => b.Id == newOrder.Id).OrderByDescending(b => b.BestallningDatum).First().BestallningId; //Hämta de som finns i varukorgen var jsonCart = HttpContext.Session.GetString("cart"); //Konvertera dvs göra om till en lista med produkter. Jämför med JSON.parse men med .NET-kod istället var foodcart = JsonConvert.DeserializeObject <List <Matratt> >(jsonCart); var orderedFoodCart = from f in foodcart group f by f.MatrattId into g select new { MatrattId = g.Key, Count = g.Count() }; foreach (var item in orderedFoodCart) { BestallningMatratt newItem = new BestallningMatratt(orderID, item.MatrattId, item.Count); _context.Add(newItem); } _context.SaveChanges(); if (User.IsInRole("PremiumUser")) { AspNetUser user = _context.AspNetUsers.SingleOrDefault(u => u.Id == newOrder.Id); user.Points = model.CurrentUser.Points; _context.Update(user); _context.SaveChanges(); } model.CurrentOrder.BestallningId = orderID; model.CurrentUser.Id = newOrder.Id; HttpContext.Session.Clear(); //För att inte gammal beställnings-data ska ligga kvar i session om man gör en ny beställning return(View("UserNewOrderMessage", model)); }
public IActionResult CompleteOrder(int totalBelopp) { var user = HttpContext.Session.GetString("loginCustomer"); var dishList = HttpContext.Session.GetString("selectedDishes"); List <Matratt> dishes = JsonConvert.DeserializeObject <List <Matratt> >(dishList); Bestallning best = new Bestallning(); List <Matratt> addedDishes = new List <Matratt>(); List <BestallningMatratt> orderedDishes = new List <BestallningMatratt>(); foreach (var dish in dishes) { if (addedDishes.Select(d => d.MatrattNamn).Contains(dish.MatrattNamn)) { orderedDishes.Single(d => d.MatrattId == dish.MatrattId).Antal++; } else { addedDishes.Add(dish); BestallningMatratt bM = new BestallningMatratt(); bM.Antal = 1; bM.MatrattId = _context.Matratt.Single(m => m.MatrattId == dish.MatrattId).MatrattId; orderedDishes.Add(bM); } } foreach (var order in orderedDishes) { best.BestallningMatratt.Add(order); } best.Kund = _context.Kund.Single(k => k.AnvandarNamn == user); best.Levererad = false; best.Totalbelopp = totalBelopp; best.BestallningDatum = DateTime.Now; _context.Bestallning.Add(best); _context.SaveChanges(); //Remove from session HttpContext.Session.Remove("selectedDishes"); return(View("ViewDishes")); }
// köp public async Task <IActionResult> Buy() { ApplicationUser user = await _userManager.GetUserAsync(User); var cartItems = hamtaCartItems(); int totalPrice = cartItems.Sum(x => x.Pris); var kunden = _context.Kunds.FirstOrDefault(x => x.Email == user.Email); var order = new Bestallning() { BestallningDatum = DateTime.Now, Levererad = false, Totalbelopp = totalPrice, KundId = kunden.KundId }; _context.Bestallnings.Add(order); _context.SaveChanges(); var sortedList = cartItems.GroupBy(m => m.MatrattId).Select(m => m.First()).ToList(); foreach (var item in sortedList) { var ratt = new BestallningMatratt() { MatrattId = item.MatrattId, BestallningId = order.BestallningId, Antal = cartItems.Where(m => m.MatrattId == item.MatrattId).ToList().Count }; _context.BestallningMatratts.Add(ratt); _context.SaveChanges(); } _context.SaveChanges(); HttpContext.Session.SetString("cart", ""); return(View("Tack", cartItems)); }
public IActionResult Checkout(List <Matratt> order) { var customer = int.Parse(HttpContext.Session.GetString("UserId")); if (HttpContext.Session.GetString("Varukorg") == null) { return(RedirectToAction("Order")); } var sessionValue = HttpContext.Session.GetString("Varukorg"); List <Matratt> matLista = JsonConvert.DeserializeObject <List <Matratt> >(sessionValue); var best = new Bestallning() { Totalbelopp = matLista.Sum(x => x.Pris), BestallningDatum = DateTime.Now, Levererad = false, KundId = customer }; _context.Bestallning.Add(best); var tempList = matLista.OrderBy(x => x.MatrattId); foreach (var item in tempList.Select(x => x.MatrattId).Distinct()) { var b1 = new BestallningMatratt() { BestallningId = best.BestallningId, MatrattId = item, Antal = matLista.Count(z => z.MatrattId == item) }; _context.BestallningMatratt.Add(b1); } _context.SaveChanges(); return(View(matLista)); }
//Hämtar sessionsvariablerna, lägger in all data till objekten och sparar ner till databasen, sedan visar den en vy med en bekräftelse. public IActionResult ShowOrder() { Kund sessionsKund = new Kund(); var tempMatratt = HttpContext.Session.GetString("Matratt"); var beställning = JsonConvert.DeserializeObject <Bestallning>(tempMatratt); var tempLogin = HttpContext.Session.GetString("Login"); var Kund = JsonConvert.DeserializeObject <Kund>(tempLogin); sessionsKund = Kund; Bestallning nyBeställning = new Bestallning(); BestallningMatratt nyBeställningMaträtt = new BestallningMatratt(); nyBeställning.BestallningDatum = DateTime.Now; nyBeställning.Totalbelopp = beställning.BestallningMatratt.Sum(x => x.Antal * x.Matratt.Pris); nyBeställning.KundId = sessionsKund.KundId; _context.Bestallning.Add(nyBeställning); _context.SaveChanges(); foreach (var item in beställning.BestallningMatratt) { nyBeställningMaträtt.MatrattId = item.MatrattId; nyBeställningMaträtt.Antal = item.Antal; nyBeställningMaträtt.Bestallning = nyBeställning; _context.BestallningMatratt.Add(nyBeställningMaträtt); _context.SaveChanges(); } OrderVM orderVM = new OrderVM(); orderVM.kund = sessionsKund; orderVM.beställning = beställning; return(View(orderVM)); }
// sparar alla valda maträtter i en sessionsvariabel public IActionResult AddToCart(int id) { var matratt = _context.Matratt.SingleOrDefault(x => x.MatrattId == id); Bestallning beställning; if (HttpContext.Session.GetString("Matratt") == null) { beställning = new Bestallning() { BestallningMatratt = new List <BestallningMatratt>() }; } else { var temp = HttpContext.Session.GetString("Matratt"); beställning = JsonConvert.DeserializeObject <Bestallning>(temp); } BestallningMatratt bestallningMatratt = new BestallningMatratt(); bestallningMatratt.Matratt = matratt; bestallningMatratt.Antal = 1; bestallningMatratt.MatrattId = matratt.MatrattId; if (beställning.BestallningMatratt.Any(x => x.MatrattId == matratt.MatrattId)) { beställning.BestallningMatratt.Where(x => x.MatrattId == matratt.MatrattId).First().Antal++; } else { beställning.BestallningMatratt.Add(bestallningMatratt); } var serializedValue = JsonConvert.SerializeObject(beställning); HttpContext.Session.SetString("Matratt", serializedValue); return(PartialView("_CartViewPartial", beställning.BestallningMatratt)); }
public PartialViewResult AddToCart(int productId, string returnUrl) { var product = _productRepository.GetSingleProduct(productId); var order = GetCart(); // Check if product exist in cart => add qty 1 if (order.BestallningMatratt.Any(x => x.MatrattId == productId)) { order.BestallningMatratt.Single(x => x.MatrattId == productId).Antal += 1; } else { var newProd = new BestallningMatratt() { Antal = 1, Matratt = new Matratt() { MatrattNamn = product.MatrattNamn, Pris = product.Pris }, // Selfreference without this line MatrattId = productId }; order.BestallningMatratt.Add(newProd); } var points = _customerRepository.GetSingleCustomer(_userManager.GetUserName(User)).Poang; order.Totalbelopp = order.ComputeTotalValue(GetUserRole(), points, order.BestallningMatratt.Sum(p => p.Antal)); SetCart(order); var model = new CartIndexViewModel() { Cart = order, CartTotalValue = order.Totalbelopp }; return(PartialView("_CartSumPartial", model)); }
public void SaveBestallningMatratter(List <Matratt> matratter) { var bestallningsmatrattlista = new List <BestallningMatratt>(); var id = 0; var first = 0; var count = 0; var nymatratter = matratter.OrderBy(r => r.MatrattNamn).ToList(); using (TomasosContext db = new TomasosContext()) { var listbestallning = db.Bestallning.OrderByDescending(r => r.BestallningDatum).ToList(); for (var i = 0; i < nymatratter.Count; i++) { if (id != nymatratter[i].MatrattId) { first++; var best = new BestallningMatratt(); id = nymatratter[i].MatrattId; best.BestallningId = listbestallning[0].BestallningId; best.MatrattId = nymatratter[i].MatrattId; best.Antal = 1; bestallningsmatrattlista.Add(best); } else if (id == nymatratter[i].MatrattId) { count = first - 1; bestallningsmatrattlista[count].Antal++; } } foreach (var item in bestallningsmatrattlista) { db.Add(item); db.SaveChanges(); } } }
public async Task <IActionResult> ConfirmOrder() { List <Matratt> cart; var currentUser = await _userManager.GetUserAsync(HttpContext.User); if (string.IsNullOrEmpty(HttpContext.Session.GetString(sessionName))) { return(RedirectToAction("Menu", "Store")); } else { var temp = HttpContext.Session.GetString(sessionName); cart = JsonConvert.DeserializeObject <List <Matratt> >(temp); var cartDistinct = cart.Select(x => x.MatrattId).Distinct().ToList(); // Plockar ut distinkta MatrattID ur cart List <Matratt> cartDistinctMatratt = new List <Matratt>(); // Konverterar distincta IDn till typen Matratt foreach (var item in cartDistinct) // Lägger till matratt i lista av distinkta maträtter { var query = (from c in cart where c.MatrattId == item select c).First(); cartDistinctMatratt.Add(query); } var order = new Bestallning // Skapar en grundbeställning { KundId = currentUser.Id, BestallningDatum = DateTime.Now, Totalbelopp = cart.Sum(x => x.Pris), Levererad = false }; if (User.IsInRole("premium")) { if (cart.Count >= 3) { order.Totalbelopp = Convert.ToInt32(order.Totalbelopp * .8); } foreach (var item in cart) { currentUser.Points += 10; } if (currentUser.Points >= 100) { var cheapest = cart.OrderBy(x => x.Pris).First(); cart.First(x => x.MatrattId == cheapest.MatrattId).Pris = 0; currentUser.Points -= 100; } _applicationContext.SaveChanges(); } _tomasosContext.Bestallning.Add(order); var bestallningMatratt = new BestallningMatratt(); foreach (var item in cartDistinctMatratt) { bestallningMatratt = new BestallningMatratt { BestallningId = order.BestallningId, Antal = cart.Where(x => x.MatrattId == item.MatrattId).Count(), MatrattId = item.MatrattId }; _tomasosContext.BestallningMatratt.Add(bestallningMatratt); } _tomasosContext.SaveChanges(); _tomasosContext.Dispose(); } return(RedirectToAction("Orders", "User")); }
public void CreateOrderConnection(TomasosContext context, BestallningMatratt connection) { context.Add(connection); context.SaveChanges(); }
public IActionResult ConfirmOrder() { var serializedValue = HttpContext.Session.GetString("Varukorg"); var cart = JsonConvert.DeserializeObject <List <BestallningMatratt> >(serializedValue); int sum = cart.Sum(x => x.Matratt.Pris * x.Antal); int points = cart.Sum(x => x.Antal * 10); double discount = 1; if (cart.Sum(x => x.Antal) >= 3) { discount = 0.8; } var customer = _context.Kund.SingleOrDefault(k => k.AnvandarNamn == _userManager.GetUserName(User)); Bestallning newOrder; if (User.IsInRole("Premium")) { if (customer.Poang >= 100) { double freeDish = cart.Max(x => x.Matratt.Pris); newOrder = new Bestallning() { BestallningDatum = DateTime.Now, Totalbelopp = (int)((sum * discount) - (freeDish * discount)), Levererad = false, KundId = customer.KundID }; customer.Poang -= 100; } else { newOrder = new Bestallning() { BestallningDatum = DateTime.Now, Totalbelopp = (int)(sum * discount), Levererad = false, KundId = customer.KundID }; } customer.Poang += points; } else { newOrder = new Bestallning() { BestallningDatum = DateTime.Now, Totalbelopp = (int)sum, Levererad = false, KundId = customer.KundID }; } _context.Bestallning.Add(newOrder); _context.SaveChanges(); foreach (var item in cart) { var newBeställningMaträtt = new BestallningMatratt() { BestallningId = newOrder.BestallningId, MatrattId = item.MatrattId, Antal = item.Antal }; _context.BestallningMatratt.Add(newBeställningMaträtt); } _context.SaveChanges(); HttpContext.Session.Clear(); return(RedirectToAction("Menu")); }