Beispiel #1
0
        public ActionResult Create(int?id)
        {
            var userId = User.Identity.GetUserId();
            var list   = _context.ShoppingLists.SingleOrDefault(s => s.Id == id);

            if (list == null)
            {
                Response.StatusCode = 404;
                ViewBag.Message     = "Ostoslistaa ei löytynyt";
                return(View("Error"));
            }

            var editAllowed = _context.ShoppingListShares.Any(s => s.ShoppingListId == list.Id && s.ReceiverUserId == userId && s.EditAllowed);

            if (list.OwnerId != userId && !editAllowed)
            {
                Response.StatusCode = 403;
                ViewBag.Message     = "Ei oikeutta tarkastella ostoslistaa";
                return(View("Error"));
            }

            var vm = new ShareListViewModel
            {
                ShoppingListId = list.Id,
                Name           = list.Name
            };

            return(View(vm));
        }
Beispiel #2
0
        public ActionResult Create(ShareListViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var receiver = _context.Users.SingleOrDefault(u => u.UserName == vm.ReceiverUsername);

                if (receiver == null)
                {
                    ModelState.AddModelError("ReceiverUsername", "Käyttäjää ei löydy kyseisellä nimellä. Tarkista käyttäjänimi.");

                    return(View(vm));
                }

                var shareExists = _context.ShoppingListShares
                                  .Any(s => s.ShoppingListId == vm.ShoppingListId && s.ReceiverUserId == receiver.Id);

                if (shareExists)
                {
                    ModelState.AddModelError("", "Lista on jo jaettu kyseiselle käyttäjälle");

                    return(View(vm));
                }

                var share = new ShoppingListShare
                {
                    ShoppingListId = vm.ShoppingListId,
                    ReceiverUserId = receiver.Id,
                    EditAllowed    = vm.EditAllowed
                };

                _context.ShoppingListShares.Add(share);
                _context.SaveChanges();

                TempData["message"] = "Lista '" + vm.Name + "' jaettu käyttäjälle " + vm.ReceiverUsername;

                return(RedirectToAction("Index", "ShoppingLists"));
            }

            return(View(vm));
        }