示例#1
0
        /// <summary>
        /// Catalog Item Notify
        /// </summary>
        /// <param name="itemId"></param>
        /// <param name="priceNew"></param>
        /// <returns></returns>
        public async Task CatalogItemsNotifyAsync(int itemId, decimal priceNew)
        {
            _logger.LogInformation("Inicialize catalog items notify...");

            var catalogItem = await _itemRepository.GetByIdAsync(itemId);

            var users = _signInManager.UserManager.Users.ToList();

            //All wishLists
            var wishesList = await _wishListRepository.ListAllAsync();

            foreach (var wl in wishesList)
            {
                var wishListSpec = new WishListWithItemsSpecification(wl.Id);
                var wishList     = (await _wishListRepository.ListAsync(wishListSpec)).FirstOrDefault();

                //items of wishList
                foreach (var item in wishList.Items)
                {
                    // if the item with itemId is in this wishList
                    if (item.CatalogItemId == itemId)
                    {
                        var user = users.Where(x => x.UserName == wishList.WisherId).FirstOrDefault();
                        await CatalogItemNotifyClient(user.Email, catalogItem, priceNew);
                    }
                }
            }
        }
示例#2
0
        public async Task <WishListViewModel> GetOrCreateWishListForUser(string userName)
        {
            var wishListSpec = new WishListWithItemsSpecification(userName);
            var wishList     = (await _wishListRepository.ListAsync(wishListSpec)).FirstOrDefault();

            if (wishList == null)
            {
                return(await CreateWishListForUser(userName));
            }
            return(await CreateViewModelFromWishList(wishList));
        }
示例#3
0
        public async Task TransferWishListAsync(string anonymousId, string userName)
        {
            Guard.Against.NullOrEmpty(anonymousId, nameof(anonymousId));
            Guard.Against.NullOrEmpty(userName, nameof(userName));
            var wishlistSpec = new WishListWithItemsSpecification(anonymousId);
            var wishlist     = (await _wishlistRepository.ListAsync(wishlistSpec)).FirstOrDefault();

            if (wishlist == null)
            {
                return;
            }
            wishlist.BuyerId = userName;
            await _wishlistRepository.UpdateAsync(wishlist);
        }
示例#4
0
        public async Task <int> GetWishListItemCountAsync(string userName)
        {
            Guard.Against.NullOrEmpty(userName, nameof(userName));
            var wishlistSpec = new WishListWithItemsSpecification(userName);
            var wishlist     = (await _wishlistRepository.ListAsync(wishlistSpec)).FirstOrDefault();

            if (wishlist == null)
            {
                _logger.LogInformation($"No wishlist found for {userName}");
                return(0);
            }
            int count = wishlist.Items.Sum(i => i.Quantity);

            _logger.LogInformation($" WishList for {userName} has {count} items.");
            return(count);
        }