コード例 #1
0
        public async Task <FavouringResponseOutDto> FavourizeAsync(ChoiseOfFavouringProductDto dto, string userId)
        {
            var result = new FavouringResponseOutDto {
                IsPositive = dto.Choise
            };

            int[] usersFavouriteProducts = await userFavProdRepository.All().Where(x => x.UserId == userId).Select(x => x.ProductId).ToArrayAsync();

            if (!(dto.Choise ^ usersFavouriteProducts.Contains(dto.ProductId)))
            {
                return(null);                                                               //fail
            }
            if (dto.Choise)
            {
                await userFavProdRepository.AddAssync(new UserFavouriteProduct
                {
                    UserId    = userId,
                    ProductId = dto.ProductId
                });

                result.TotalFavouredProducts = usersFavouriteProducts.Length + 1;
            }
            else
            {
                var favProduct = await userFavProdRepository.All().SingleAsync(x => x.ProductId == dto.ProductId && x.UserId == userId);

                userFavProdRepository.Remove(favProduct);
                result.TotalFavouredProducts = usersFavouriteProducts.Length - 1;
            }
            await userFavProdRepository.SaveChangesAsync();

            return(result);
        }
コード例 #2
0
        //[IgnoreAntiforgeryToken]
        public async Task <string> Favourize(ChoiseOfFavouringProductDto dto)
        {
            //dto.Choise = dto.Choise ? false : true;
            var currentUser = await userManager.GetUserAsync(User);

            FavouringResponseOutDto result = await productsService.FavourizeAsync(dto, currentUser.Id);

            if (result is null)
            {
                return($"Fail! uncorrect operation!");
            }
            if (result.IsPositive)
            {
                return($"Success this product was Added to favourite list. You now have {result.TotalFavouredProducts} favourite products!");
            }
            return($"Success this product was Removed from favourite list. You now have {result.TotalFavouredProducts} favourite products!");
        }