public IActionResult AddMenuitem(AddItemViewModel newitem) { if (ModelState.IsValid) { var newMatratt = new Matratt() { MatrattNamn = newitem.MatrattNamn, MatrattTyp = newitem.MatrattTyp, Pris = newitem.Pris, Beskrivning = newitem.Beskrivning }; _tomasos.Add(newMatratt); foreach (var item in newitem.ValdaIdn) { _tomasos.Add( new MatrattProdukt() { MatrattId = newMatratt.MatrattId, ProduktId = item }); } _tomasos.SaveChanges(); } else { return(View()); } return(RedirectToAction("StartPage", "Home")); }
public async Task <int> AddNewProdukt(Produkt prod) { _context.Add(prod); await _context.SaveChangesAsync(); return(prod.ProduktId); }
public IActionResult CheckOut() { var model = new OrderCheckOut(); model.TodoBestallning.BestallningDatum = DateTime.Now; var user = HttpContext.Session.GetString("Users"); var currentUser = JsonConvert.DeserializeObject <Kund>(user); model.ShoppingUser = _context.Kund.SingleOrDefault(k => k.AnvandarNamn.Equals(currentUser.AnvandarNamn)); model.TodoBestallning.KundId = model.ShoppingUser.KundId; model.ListOfMatrattToOrder = GetKopplingsTabell(); model.TodoBestallning.Totalbelopp = GetSum(model); _context.Add(model.TodoBestallning); _context.SaveChanges(); var currentOrder = _context.Bestallning.OrderByDescending(d => d.BestallningDatum) .Where(k => k.KundId == model.ShoppingUser.KundId).Take(1); foreach (var matratt in model.ListOfMatrattToOrder) { matratt.BestallningId = model.TodoBestallning.BestallningId; _context.Add(matratt); _context.SaveChanges(); } return(View(model)); }
public async Task <bool> AddIngredientToDish(string name, int matrattId) { // Get the current dish var dish = await GetDishAsync(matrattId); // Get all ingredients in DB var produkter = await GetDishIngredientsAsync(); MatrattProdukt matrattProdukt; // Check if the name doesn't already exists in the DB if (!produkter.Any(p => string.Equals(p.ProduktNamn, name, StringComparison.CurrentCultureIgnoreCase))) { // Name doesn't exist, create it and attach the id to the current dish through connection table var newProdukt = new Produkt { ProduktNamn = name.ToFirstLetterUpper() }; _context.Add(newProdukt); _context.SaveChanges(); // Attach tne new produkt to MatrattProdukt. matrattProdukt = new MatrattProdukt { MatrattId = matrattId, ProduktId = newProdukt.ProduktId }; dish.MatrattProdukt.Add(matrattProdukt); _context.Entry(dish).State = EntityState.Modified; var result = await _context.SaveChangesAsync(); return(result == 1); } // Check if the dish doesn't have that produkt already if (!dish.MatrattProdukt.Any(p => string.Equals(p.Produkt.ProduktNamn, name, StringComparison.CurrentCultureIgnoreCase))) { // Take the produkt from the list of existing produkts and attach it to the dish. matrattProdukt = new MatrattProdukt { MatrattId = matrattId, ProduktId = produkter.First(p => string.Equals(p.ProduktNamn, name, StringComparison.CurrentCultureIgnoreCase)).ProduktId }; _context.MatrattProdukt.Add(matrattProdukt); _context.Entry(dish).State = EntityState.Modified; var result = await _context.SaveChangesAsync(); return(result == 1); } return(false); }
public void SaveOrder(List <Matratt> matratter, int userid, System.Security.Claims.ClaimsPrincipal user) { var count = matratter.Count; if (user.IsInRole("PremiumUser")) { SaveOrderPremiumUser(matratter, userid); } else { var customer = GetById(userid); var totalmoney = GetTotalPayment(matratter); var bestallning = new Bestallning() { BestallningDatum = DateTime.Now, KundId = customer.KundId, Totalbelopp = totalmoney, Levererad = false }; using (TomasosContext db = new TomasosContext()) { db.Add(bestallning); db.SaveChanges(); } SaveBestallningMatratter(matratter); } }
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 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 void SaveOrderPremiumUser(List <Matratt> matratter, int userid) { var customer = GetById(userid); var totalsum = 0m; var topay = 0; var bonuscount = 0; var bonus = 0; matratter.OrderBy(r => r.Pris); using (TomasosContext db = new TomasosContext()) { var kund = db.Kund.FirstOrDefault(r => r.KundId == customer.KundId); if (Convert.ToInt32(kund.BonusPoints) >= 100) { matratter[0].Pris = 0; bonus = Convert.ToInt32(kund.BonusPoints); kund.BonusPoints = (bonus - 100).ToString(); } if (matratter.Count > 2) { bonuscount = matratter.Count; bonuscount *= 10; bonus = Convert.ToInt32(kund.BonusPoints); kund.BonusPoints = (bonus + bonuscount).ToString(); totalsum = GetTotalPayment(matratter); topay = Convert.ToInt32(totalsum * 0.80m); } else { bonuscount = matratter.Count; bonuscount *= 10; bonus = Convert.ToInt32(kund.BonusPoints); kund.BonusPoints = (bonus + bonuscount).ToString(); topay = GetTotalPayment(matratter); } db.Kund.Update(kund); db.SaveChanges(); } var bestallning = new Bestallning() { BestallningDatum = DateTime.Now, KundId = customer.KundId, Totalbelopp = topay, Levererad = false }; using (TomasosContext db = new TomasosContext()) { db.Add(bestallning); db.SaveChanges(); } SaveBestallningMatratter(matratter); }
// Helpers private void AddIngredient(int ingredientId, int dishId) { var dish = _context.MatrattProdukt.SingleOrDefault(m => m.MatrattId == dishId && m.ProduktId == ingredientId); if (dish == null) { _context.Add(new MatrattProdukt { ProduktId = ingredientId, MatrattId = dishId }); _context.SaveChanges(); } }
/// <summary> /// Adds the order to the database. PremiumUser will get the calculated price based on the discount and bonus points. /// </summary> public async Task <Bestallning> AddOrderAsync(string userId, ShoppingCart cart, UserRole role) { var kund = await _context.Kund.FirstOrDefaultAsync(u => u.UserId == userId); if (kund == null) { return(null); } if (role == UserRole.PremiumUser) { // instantiates the int if it's null, meaning this user hasn't had any points before. // Add the points to the Kund, 10 points per item in the cart. if (kund.Bonuspoäng == null) { kund.Bonuspoäng = 0; } if (kund.Bonuspoäng >= 100) { kund.Bonuspoäng -= 100; } kund.Bonuspoäng += (cart.Products.Count * 10); } // Group the products by ID and counting them into new BestallningMatratt objects var orders = cart.Products .GroupBy(p => p.MatrattId) .Select(g => new BestallningMatratt { MatrattId = g.First().MatrattId, Antal = g.Count() }).ToList(); // Puts the order together var order = new Bestallning { BestallningDatum = DateTime.Now, KundId = kund.KundId, Levererad = false, Totalbelopp = role == UserRole.PremiumUser ? cart.TotalSum(UserRole.PremiumUser) : cart.TotalSum(), BestallningMatratt = orders }; // Calculates the points and saves to database _context.Add(order); _context.Entry(kund).State = EntityState.Modified; await _context.SaveChangesAsync(); return(await _context.Bestallning .Include(b => b.BestallningMatratt) .Include(b => b.Kund) .FirstOrDefaultAsync(x => x.KundId == kund.KundId)); }
public IActionResult EditMenu(ViewModelFood edited) { var old = GetViewModel(); old.CurrentFood = _context.Food.SingleOrDefault(f => f.FoodId == edited.CurrentFood.FoodId); edited.CurrentFood.Ingredients = new List <Ingredient>(); foreach (var item in edited.AllIngredients) { if (item.Selected == true) { if (old.CurrentFood.Ingredients.FirstOrDefault(i => i.IngredientId == item.IngredientId) == null) { FoodIngredient foodIng = new FoodIngredient(); foodIng.FoodId = edited.CurrentFood.FoodId; foodIng.IngredientId = item.IngredientId; _context.Add(foodIng); _context.SaveChanges(); } } else { if (old.CurrentFood.Ingredients.FirstOrDefault(i => i.IngredientId == item.IngredientId) != null) { var foodIng = _context.FoodIngredient.FirstOrDefault(i => i.IngredientId == item.IngredientId && i.FoodId == edited.CurrentFood.FoodId); _context.Remove(foodIng); _context.SaveChanges(); } } } _context.Entry(old.CurrentFood).CurrentValues.SetValues(edited.CurrentFood); _context.SaveChanges(); return(RedirectToAction("ManageMenu")); }
public IActionResult AddFood(ManageFoodViewModel model) { var foodAldreadyExist = _context.Matratts.Where(m => m.MatrattNamn == model.CurrentMatratt.MatrattNamn).ToList(); if (ModelState.IsValid) { if (foodAldreadyExist.Count == 0) { _context.Add(model.CurrentMatratt); _context.SaveChanges(); TempData["AddFood"] = "Ny maträtt tillagd"; var selectedIngredients = model.ingredients.Where(i => i.IsChecked == true).ToList(); var newFoodId = _context.Matratts.SingleOrDefault(m => m.MatrattNamn == model.CurrentMatratt.MatrattNamn).MatrattId; foreach (var ingredient in selectedIngredients) { MatrattProdukt newItem = new MatrattProdukt(); newItem.MatrattId = newFoodId; newItem.ProduktId = ingredient.ProduktId; _context.Add(newItem); } _context.SaveChanges(); return(RedirectToAction("ManageFood")); } else { TempData["AddFood"] = "Maträtt kunde inte läggas till. Namn på maträtt upptaget?"; return(RedirectToAction("ManageFood")); } } return(RedirectToAction("ManageFood")); }
public async Task <IActionResult> Register(RegistrationViewModel user) { if (ModelState.IsValid) { var userIdentity = new ApplicationUser { UserName = user.AnvandarNamn }; var result = await _userManager.CreateAsync(userIdentity, user.Losenord); if (result.Succeeded) { if (user.RoleName == "Premium") { var resultRole = await _userManager.AddToRoleAsync(userIdentity, user.RoleName); } else { var resultRole = await _userManager.AddToRoleAsync(userIdentity, "Regular"); } var reguser = new Kund { Namn = user.Namn, Gatuadress = user.Gatuadress, Postnr = user.Postnr, Postort = user.Postort, Email = user.Email, Telefon = user.Telefon, AnvandarNamn = user.AnvandarNamn, Losenord = user.Losenord, IdentityId = userIdentity.Id }; _tomasos.Add(reguser); await _tomasos.SaveChangesAsync(); await _signInManager.SignInAsync(userIdentity, isPersistent : false); return(RedirectToAction("StartPage", "Home")); } } return(View()); }
public void SaveOrder(List <Matratt> matratter, int userid) { var customer = GetById(userid); var totalmoney = GetTotalPayment(matratter); var bestallning = new Bestallning() { BestallningDatum = DateTime.Now, KundId = customer.KundId, Totalbelopp = totalmoney, Levererad = false }; using (TomasosContext db = new TomasosContext()) { db.Add(bestallning); db.SaveChanges(); } SaveBestallningMatratter(matratter); }
public IActionResult Register(Kund kund) { if (ModelState.IsValid) { var newKund = new Kund(); newKund.Namn = kund.Namn; newKund.Gatuadress = kund.Gatuadress; newKund.Postnr = kund.Postnr; newKund.Postort = kund.Postort; newKund.Telefon = kund.Telefon; newKund.Email = kund.Email; newKund.AnvandarNamn = kund.AnvandarNamn; newKund.Losenord = kund.Losenord; _context.Add(newKund); _context.SaveChanges(); return(View("Registered", newKund)); } return(View()); }
public IActionResult AddMeal(AddMealViewModel model) { Matratt matratt = new Matratt(); matratt = model.Recipe; foreach (var ingredient in model.SelectedIngredientIds) { matratt.MatrattProdukt.Add(new MatrattProdukt { MatrattId = model.Recipe.MatrattId, ProduktId = ingredient }); } if (ModelState.IsValid) { _tomasosContext.Add(matratt); _tomasosContext.SaveChanges(); return(RedirectToAction("AdminPanel", "Admin")); } return(View()); }
public async Task <IActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.AnvandarNamn, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Losenord); if (result.Succeeded) { // lägger in ny kund i databasen Kund NewKund = new Kund { Namn = model.Namn, Gatuadress = model.Gatuadress, Postnr = model.Postnr, Postort = model.Postort, Email = model.Email, Telefon = model.Telefon, AnvandarNamn = model.AnvandarNamn, Losenord = model.Losenord, }; _context.Add(NewKund); _context.SaveChanges(); // await _signInManager.SignInAsync(user, isPersistent : false); return(RedirectToAction("index", "home")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } } return(View(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 void CreateNewCustomer(TomasosContext context, Kund newCustomer) { context.Add(newCustomer); context.SaveChanges(); }
public void CreateOrderConnection(TomasosContext context, BestallningMatratt connection) { context.Add(connection); context.SaveChanges(); }
private async Task CreateUserRoles(IServiceProvider serviceProvider) { var RoleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); var UserManager = serviceProvider.GetRequiredService <UserManager <ApplicationUser> >(); IdentityResult roleResult; IdentityResult roleResult2; IdentityResult roleResult3; //Adding Admin Role var roleCheck = await RoleManager.RoleExistsAsync("Admin"); if (!roleCheck) { //create the roles and seed them to the database roleResult = await RoleManager.CreateAsync(new IdentityRole("Admin")); } var roleCheck2 = await RoleManager.RoleExistsAsync("Premium"); if (!roleCheck2) { //create the roles and seed them to the database roleResult2 = await RoleManager.CreateAsync(new IdentityRole("Premium")); } var roleCheck3 = await RoleManager.RoleExistsAsync("Regular"); if (!roleCheck3) { //create the roles and seed them to the database roleResult3 = await RoleManager.CreateAsync(new IdentityRole("Regular")); } if (await UserManager.FindByNameAsync("Admin") == null) { var userIdentity = new ApplicationUser { UserName = "******" }; var result = await UserManager.CreateAsync(userIdentity, "Admin123"); if (result.Succeeded) { var resultRole = await UserManager.AddToRoleAsync(userIdentity, "Admin"); var reguser = new Kund { Namn = "Admin", Gatuadress = "Admin", Postnr = "Admin", Postort = "Admin", Email = "Admin", Telefon = "Admin", AnvandarNamn = "Admin", Losenord = "Admin123", IdentityId = userIdentity.Id }; TomasosContext DB = new TomasosContext(); DB.Add(reguser); await DB.SaveChangesAsync(); } } }
public void CreateOrder(TomasosContext context, Bestallning order) { context.Add(order); context.SaveChanges(); }
public void Add(Produkt produkt) { _context.Add(produkt); _context.SaveChanges(); }