Пример #1
0
        public IActionResult AcceptInvite(int id)
        {
            var user = _userManager.GetUserAsync(User).Result;

            var wishList = WishListRepository.Find(id);


            if (wishList.Subscribers.Any(pi => pi.UserId == user?.Id))
            {
                return(BadRequest("subscription already exists"));
            }


            wishList.PendingInvites.RemoveAll(pi => pi.UserId == user?.Id);

            var subscriber = new WishlistSubscriber
            {
                User     = _userManager.GetUserAsync(User).Result,
                WishList = wishList
            };

            wishList.AddSubscriber(subscriber);

            WishListRepository.Update(wishList);
            // _userManager.UpdateAsync(user);

            return(Ok());
        }
Пример #2
0
        public IActionResult GrantAccess(int id, [FromBody] EmailModel email)
        {
            var user = _userManager.GetUserAsync(User).Result;

            var wishList = WishListRepository.Find(id);

            if (wishList.CreatorName != user.Email)
            {
                return(BadRequest("only owner of wishlist can grant access"));
            }

            var requestUser = _userManager.FindByEmailAsync(email.Email).Result;

            if (!wishList.PendingRequests.Any(pr => pr.UserId == requestUser?.Id))
            {
                return(BadRequest("user with given email did not request access"));
            }

            wishList.PendingRequests.RemoveAll(pr => pr.UserId == requestUser.Id);

            var subscriber = new WishlistSubscriber
            {
                User     = requestUser,
                WishList = wishList
            };

            wishList.Subscribers.Add(subscriber);

            WishListRepository.Update(wishList);

            return(Ok());
        }
Пример #3
0
        private async Task InitializeUsers()
        {
            var firstUser = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };

            var wishList = new Wishlist("Birthday")
            {
                CreatorName = firstUser.UserName,
                Wishes      = new List <Wish>
                {
                    new Wish {
                        Name = "Car", Description = "Vehicle with four wheels", Price = 10000
                    },
                    new Wish {
                        Name = "Teddy bear", Description = "Plushy toy", Price = 20, Claimed = true
                    },
                    new Wish {
                        Name = "iPhone X", Description = "Cool phone", Price = 999999
                    },
                    new Wish {
                        Name = "Guitar", Description = "For playing music", Price = 200, Claimed = true
                    },
                    new Wish {
                        Name = "Money", Description = "It's money", Price = 20, Claimed = true
                    }
                }
            };


            firstUser.CreateWishList(wishList);

            var secondUser = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };

            var secondWishList = new Wishlist("Easter")
            {
                CreatorName = secondUser.UserName,
                Wishes      = new List <Wish>
                {
                    new Wish {
                        Name = "New Wish"
                    }
                }
            };

            secondUser.CreateWishList(secondWishList);

            var thirdWishList = new Wishlist("Christmas");

            firstUser.CreateWishList(thirdWishList);

            var invite = new PendingInvite
            {
                User     = firstUser,
                WishList = secondWishList
            };

            var subscription = new WishlistSubscriber
            {
                User     = secondUser,
                WishList = wishList
            };


            var request = new PendingRequest
            {
                User     = secondUser,
                WishList = thirdWishList
            };

            secondWishList.AddInvite(invite);
            secondUser.Subscribe(subscription);
            secondUser.AddRequest(request);

            var thirdUser = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };

            await _userManager.CreateAsync(firstUser, "P@ssword1");

            await _userManager.CreateAsync(secondUser, "P@ssword1");

            await _userManager.CreateAsync(thirdUser, "P@ssword1");
        }