/// <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); } } } }
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)); }
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); }
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); }