Esempio n. 1
0
        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 IActionResult Create(Kund model)
        {
            _context.Kunds.Add(model);
            _context.SaveChanges();

            return(View("CreateConfirmation", model));
        }
Esempio n. 3
0
        public IActionResult Register(Kund newCustomer)
        {
            var isEmail       = _context.Kund.SingleOrDefault(k => k.Email.Equals(newCustomer.Email));
            var isUserName    = _context.Kund.SingleOrDefault(k => k.AnvandarNamn.Equals(newCustomer.AnvandarNamn));
            var isNotExisting = isEmail == null && isUserName == null;

            if (isNotExisting)
            {
                if (ModelState.IsValid)
                {
                    TempData["Message"] = "Account saved. You can log in.";
                    _context.Kund.Add(newCustomer);
                    _context.SaveChanges();
                    ModelState.Clear();
                    return(RedirectToAction("LogIn"));
                }

                ViewBag.Message = "Something went wrong. Try again.";
                return(View());
            }

            TempData["Message"] = "Username/E-Mail already registered. Please try to log in.";

            return(RedirectToAction("LogIn"));
        }
Esempio n. 4
0
        public void SaveOrder(Bestallning order, List <BestallningMatratt> orderList)
        {
            order.BestallningMatratt = null;

            if (order.BestallningId == 0)
            {
                // Add new product
                _context.Bestallning.Add(order);
            }
            else
            {
                // Edit existing product
                var p = Orders.FirstOrDefault(x => x.BestallningId == order.BestallningId);

                if (p != null)
                {
                    _context.Entry(p).CurrentValues.SetValues(order);
                }
            }

            _context.SaveChanges();

            foreach (var c in orderList)
            {
                _context.BestallningMatratt.Add(new BestallningMatratt()
                {
                    Antal         = c.Antal,
                    BestallningId = order.BestallningId,
                    MatrattId     = c.MatrattId
                });
            }

            _context.SaveChanges();
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        public async Task <IActionResult> Register(Kund newUser)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newAccount = new ApplicationUser()
                {
                    UserName      = newUser.AnvandarNamn,
                    Email         = newUser.Email,
                    PhoneNumber   = newUser.Telefon,
                    Name          = newUser.Namn,
                    StreetAddress = newUser.Gatuadress,
                    PostalCode    = newUser.Postnr,
                    City          = newUser.Postort
                };

                var result = await _usermanager.CreateAsync(newAccount, newUser.Losenord);

                if (result.Succeeded)
                {
                    await _signinmanager.SignInAsync(newAccount, isPersistent : false);

                    newUser.Id = newAccount.Id;
                    _context.Kunds.Add(newUser);
                    _context.SaveChanges();

                    return(RedirectToAction("LoggedIn", "Account", new { model = newUser }));
                }
            }

            ViewBag.Message = "Något gick fel. Försök igen";
            return(View());
        }
        public IActionResult RegisterAccount(Kund newCustomer)
        {
            var  isEmail       = _context.Kund.SingleOrDefault(k => k.Email.Equals(newCustomer.Email));
            var  isUserName    = _context.Kund.SingleOrDefault(k => k.AnvandarNamn.Equals(newCustomer.AnvandarNamn));
            bool isNotExisting = isEmail == null && isUserName == null;

            if (isNotExisting)
            {
                if (ModelState.IsValid)
                {
                    TempData["Message"] = "Användaren är sparad. Du kan nu logga in";
                    //ViewBag.Message = "Användaren är sparad. Du kan nu logga in!";
                    _context.Kund.Add(newCustomer);
                    _context.SaveChanges();
                    ModelState.Clear();
                    return(RedirectToAction("LogIn"));
                }
                else
                {
                    ViewBag.Message = "Något gick fel vid sparandet. Försök igen";
                    return(View());
                }
            }
            else
            {
                TempData["Message"] = "Användarnamnet och/eller e-postadressen är redan registrerad. Testa att logga in";

                return(RedirectToAction("LogIn"));
            }
        }
        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 <IActionResult> ConfirmOrder(int total)
        {
            var cartList    = JsonConvert.DeserializeObject <List <Matratt> >(HttpContext.Session.GetString("cart"));
            var currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

            var currentKund = _tomasos.Kund.SingleOrDefault(k => k.IdentityId == currentUser.Id);

            if (currentKund.BonusPoang == null)
            {
                currentKund.BonusPoang = 0;
            }

            if (currentKund.BonusPoang > 99 && User.IsInRole("Premium"))
            {
                total = total - cartList.OrderBy(m => m.Pris).First().Pris;

                currentKund.BonusPoang -= 100;
            }

            var order = new Bestallning()
            {
                BestallningDatum = DateTime.Now,
                Levererad        = false,
                Totalbelopp      = total,
                KundId           = currentKund.KundId
            };

            _tomasos.Bestallning.Add(order);

            var distinctlist = cartList.GroupBy(m => m.MatrattId).Select(m => m.First()).ToList();



            foreach (var item in distinctlist)
            {
                _tomasos.BestallningMatratt.Add(
                    new BestallningMatratt()
                {
                    MatrattId     = item.MatrattId,
                    BestallningId = order.BestallningId,
                    Antal         = cartList.Where(m => m.MatrattId == item.MatrattId).ToList().Count
                });
            }

            if (User.IsInRole("Premium"))
            {
                int poang = cartList.Count * 10;
                currentKund.BonusPoang = currentKund.BonusPoang + poang;
            }

            _tomasos.SaveChanges();

            HttpContext.Session.SetString("cart", "");
            HttpContext.Session.SetString("cartCount", "");

            return(View());
        }
Esempio n. 10
0
        public IActionResult Deliver(int id)
        {
            var order = _context.Bestallning.Single(x => x.BestallningId == id);

            order.Levererad = true;

            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public void Update(Matratt updatedDish)
        {
            var currentDish = _context.Matratt.FirstOrDefault(x => x.MatrattId == updatedDish.MatrattId);

            if (updatedDish != null)
            {
                _context.Entry(currentDish).CurrentValues.SetValues(updatedDish);
                _context.SaveChanges();
            }
        }
        public async Task <IActionResult> Checkout()
        {
            //TODO Det här görs flera gånger
            string            jsonChart = HttpContext.Session.GetString("OrderCart");
            List <FoodInCart> cart      = JsonConvert.DeserializeObject <List <FoodInCart> >(jsonChart).OrderBy(fic => fic.Food.MatrattId).ToList();
            var user = await _userManager.GetUserAsync(User);

            var cust = _context.Kunds.SingleOrDefault(x => x.KundId == user.KundId);

            var foodCounts = cart.GroupBy(x => x.Food.MatrattId).ToDictionary(g => g.Key, g => g.Count());
            var isPremium  = await _userManager.IsInRoleAsync(user, "PremiumUser");

            var discountedOrder = false;
            var bonusFood       = false;

            var totalAmount = cart.Select(x => x.Food.Pris).Sum();

            ViewBag.NonDiscountedAmount = totalAmount;

            if (isPremium)
            {
                if (cust.Bonuspoang >= 100)
                {
                    bonusFood = true;
                    cart      = cart.OrderBy(x => x.Food.Pris).ToList();

                    ViewBag.BonusFood      = cart.First().Food.MatrattNamn;
                    ViewBag.BonusFoodPrice = cart.First().Food.Pris;
                    totalAmount            = totalAmount - cart.First().Food.Pris;

                    cart.First().Food.Pris = 0;

                    cust.Bonuspoang = cust.Bonuspoang - 100;
                    _context.SaveChanges();
                }

                if (cart.Count > 2)
                {
                    discountedOrder = true;
                    totalAmount     = (int)(totalAmount * 0.8);
                }
            }

            var model = new CheckoutViewModel()
            {
                TotalAmount     = totalAmount,
                FoodList        = cart,
                DiscountedOrder = discountedOrder,
                BonusFood       = bonusFood
            };

            return(View("Checkout", model));
        }
Esempio n. 13
0
        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"));
        }
Esempio n. 14
0
        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 ActionResult SaveIngredient(IngredientViewModel model, int?id)
 {
     if (ModelState.IsValid)
     {
         if (id == null)
         {
             var ingredient = _context.Produkt.SingleOrDefault(p => p.ProduktNamn == model.Name);
             if (ingredient == null)
             {
                 ingredient             = new Produkt();
                 ingredient.ProduktNamn = model.Name;
                 _context.Produkt.Add(ingredient);
                 _context.SaveChanges();
                 model.Message = "The ingredient has been added.";
             }
             else
             {
                 model.Message = "That ingredient already exists.";
             }
         }
         else
         {
             var ingredient = _context.Produkt.First(p => p.ProduktId == model.Id);
             ingredient.ProduktNamn = model.Name;
             _context.SaveChanges();
             model.Message = "The ingredient has been edited.";
         }
     }
     return(PartialView("_IngredientPartial", model));
 }
 public void UpdateRoleForUser(string changeRoleTo, string id, UserManager <IdentityUser> userManager, RoleManager <IdentityRole> roleManager)
 {
     using (TomasosContext db = new TomasosContext())
     {
         var userToDelete = db.UserRoles.FirstOrDefault(r => r.UserId == id);
         db.UserRoles.Remove(userToDelete);
         db.SaveChanges();
         var userRoles = db.Roles.FirstOrDefault(r => r.Name == changeRoleTo);
         userToDelete.RoleId = userRoles.Id;
         userToDelete.UserId = id;
         db.UserRoles.Add(userToDelete);
         db.SaveChanges();
     }
 }
        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"));
        }
Esempio n. 18
0
        public void DeleteProduct(int id)
        {
            var product = Products.SingleOrDefault(x => x.MatrattId == id);

            foreach (var ingredient in product.MatrattProdukt)
            {
                _context.MatrattProdukt.Remove(ingredient);
            }

            _context.SaveChanges();

            _context.Remove(product);

            _context.SaveChanges();
        }
        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 void UpdateOnlymatratt(Matratt dish)
 {
     using (TomasosContext db = new TomasosContext())
     {
         db.Matratt.Update(dish);
         db.SaveChanges();
     }
 }
 public void UpdateDishIngredienses(List <MatrattProdukt> matrattprodukt)
 {
     using (TomasosContext db = new TomasosContext())
     {
         db.MatrattProdukt.AddRange(matrattprodukt);
         db.SaveChanges();
     }
 }
 public void DeleteMatrattProduktList(List <MatrattProdukt> model)
 {
     using (TomasosContext db = new TomasosContext())
     {
         db.MatrattProdukt.RemoveRange(model);
         db.SaveChanges();
     }
 }
 public void SaveUser(Kund user)
 {
     using (TomasosContext db = new TomasosContext())
     {
         db.Kund.Add(user);
         db.SaveChanges();
     }
 }
 public void Update(Matratt model)
 {
     using (TomasosContext db = new TomasosContext())
     {
         db.Matratt.Update(model);
         db.MatrattProdukt.AddRange(model.MatrattProdukt.ToList());
         db.SaveChanges();
     }
 }
Esempio n. 25
0
        public IActionResult UpdateUserInfo(User user)
        {
            if (ModelState.IsValid)
            {
                AspNetUser aspUser = _context.AspNetUsers.SingleOrDefault(u => u.UserName == user.AnvandarNamn);
                aspUser.UserName    = user.AnvandarNamn;
                aspUser.Namn        = user.Namn;
                aspUser.Email       = user.Email;
                aspUser.PhoneNumber = user.Telefon;
                aspUser.Gatuadress  = user.Gatuadress;
                aspUser.Postnr      = user.Postnr;
                aspUser.Postort     = user.Postort;
                _context.Update(aspUser);
                _context.SaveChanges();
            }

            return(View("UserInfo"));
        }
 public void DeliverOrder(int id)
 {
     using (TomasosContext db = new TomasosContext())
     {
         var order = db.Bestallning.FirstOrDefault(r => r.BestallningId == id);
         order.Levererad = true;
         db.Bestallning.Update(order);
         db.SaveChanges();
     }
 }
Esempio n. 27
0
        public void SaveCustomer(Kund customer)
        {
            if (customer.KundId == 0)
            {
                // Add new product
                _context.Kund.Add(customer);
            }
            else
            {
                // Edit existing product
                var p = Customers.FirstOrDefault(x => x.KundId == customer.KundId);

                if (p != null)
                {
                    _context.Entry(p).CurrentValues.SetValues(customer);
                }
            }
            _context.SaveChanges();
        }
Esempio n. 28
0
        public IActionResult RegisterCustomer(RegisterUser user)
        {
            Customer cust = new Customer();

            cust.Name       = user.Name;
            cust.Address    = user.Address;
            cust.PostalCode = user.PostalCode;
            cust.Phone      = user.Phone;
            cust.City       = user.City;
            cust.Username   = user.Username;
            cust.Email      = user.Email;
            cust.Points     = 0;
            cust.UserId     = User.FindFirstValue(ClaimTypes.NameIdentifier);

            _context.Customer.Add(cust);
            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        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);
        }
 public void RemoveIngrediens(int id)
 {
     using (TomasosContext db = new TomasosContext())
     {
         var ingrediensemodel = db.MatrattProdukt.Where(r => r.ProduktId == id);
         var model            = db.Produkt.FirstOrDefault(r => r.ProduktId == id);
         db.MatrattProdukt.RemoveRange(ingrediensemodel);
         db.Produkt.Remove(model);
         db.SaveChanges();
     }
 }